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

void share_xchannel_confirmation
               (ssh_sharing_connstate *cs,share_xchannel *xc,share_channel *chan,
               uint downstream_window)

{
  byte bVar1;
  char cVar2;
  byte bVar3;
  byte bVar4;
  byte bVar5;
  uchar uVar6;
  uchar uVar7;
  uchar uVar8;
  uchar uVar9;
  undefined1 uVar10;
  undefined1 uVar11;
  undefined1 uVar12;
  bool bVar13;
  plug_function_table **pppVar14;
  plug_function_table **pppVar15;
  plug_function_table *ppVar16;
  int iVar17;
  char *pcVar18;
  uint upstream_id;
  ssh_sharing_state *psVar19;
  Socket ppsVar20;
  int iVar21;
  int iVar22;
  void *pvVar23;
  undefined1 *puVar24;
  undefined1 *puVar25;
  share_channel *psVar26;
  share_forwarding *e;
  share_forwarding *psVar27;
  share_globreq *psVar28;
  undefined4 *puVar29;
  ssh_sharing_connstate *psVar30;
  ssh_sharing_connstate *cs_00;
  uchar uVar32;
  tree234 *t;
  share_globreq *psVar31;
  share_xchannel *psVar33;
  ssh_sharing_connstate *psVar34;
  uint uVar35;
  uchar *puVar36;
  ssh_sharing_connstate *psVar37;
  undefined4 uVar38;
  int iVar39;
  uint *puVar40;
  uint uVar41;
  uint in_t3;
  share_xchannel_message *psVar42;
  share_channel *unaff_s1;
  int unaff_s2;
  ssh_sharing_connstate *psVar43;
  int *unaff_s3;
  Socket *unaff_s4;
  uint *puVar44;
  uint *puVar45;
  ssh_sharing_connstate *psVar46;
  ssh_sharing_connstate *psVar47;
  uchar *puVar48;
  uchar *puVar49;
  int in_t9;
  code *pcVar50;
  int *piVar51;
  code *pcVar52;
  ssh_sharing_connstate *psStack_108;
  ssh_sharing_connstate *psStack_e8;
  ssh_sharing_connstate *psStack_e4;
  Socket ppsStack_e0;
  plug_function_table *ppStack_c0;
  int iStack_bc;
  share_xchannel *psStack_b8;
  ssh_sharing_connstate *psStack_b4;
  ssh_sharing_connstate *psStack_b0;
  int *piStack_ac;
  Socket *pppsStack_a8;
  ssh_sharing_connstate *psStack_a4;
  ssh_sharing_connstate *psStack_a0;
  int iStack_9c;
  share_xchannel *psStack_98;
  code *pcStack_94;
  uchar auStack_80 [4];
  int iStack_7c;
  code *pcStack_78;
  uint uStack_70;
  plug_function_table *ppStack_6c;
  share_xchannel_message *psStack_68;
  share_channel *psStack_64;
  int iStack_60;
  code *pcStack_5c;
  uchar window_adjust [8];
  
  psVar46 = *(ssh_sharing_connstate **)(in_t9 + 0x38e6c);
  psVar42 = xc->msghead;
  ppVar16 = psVar46->fn;
  if (psVar42 != (share_xchannel_message *)0x0) {
    unaff_s4 = &cs->sock;
    unaff_s3 = &chan->downstream_maxpkt;
    unaff_s2 = *(int *)(in_t9 + 0x38ab8) + 0x68e4;
    do {
      iVar39 = psVar42->datalen;
      puVar36 = psVar42->data;
      xc->msghead = psVar42->next;
      if (3 < iVar39) {
        *puVar36 = *(uchar *)&chan->downstream_id;
        psVar42->data[1] = (uchar)*(undefined2 *)&chan->downstream_id;
        psVar42->data[2] = (uchar)(chan->downstream_id >> 8);
        psVar42->data[3] = (uchar)chan->downstream_id;
        puVar36 = psVar42->data;
        iVar39 = psVar42->datalen;
      }
      send_packet_to_downstream
                ((ssh_sharing_connstate *)unaff_s4,psVar42->type,puVar36,iVar39,chan,
                 (share_channel *)unaff_s3);
      (**(code **)(&DAT_00038380 + in_t9))(psVar42);
      psVar42 = xc->msghead;
      unaff_s1 = chan;
    } while (psVar42 != (share_xchannel_message *)0x0);
  }
  window_adjust._0_4_ = xc->server_id;
  iVar39 = downstream_window - xc->window;
  psVar30 = (ssh_sharing_connstate *)cs->parent->ssh;
  psVar33 = (share_xchannel *)cs->id;
  window_adjust[4] = (uchar)((uint)iVar39 >> 0x18);
  window_adjust[6] = (uchar)((uint)iVar39 >> 8);
  window_adjust[5] = (uchar)((uint)iVar39 >> 0x10);
  window_adjust[7] = (uchar)iVar39;
  (**(code **)(in_t9 + 0x38b58))(psVar30,psVar33,0x5d,window_adjust);
  if (ppVar16 == psVar46->fn) {
    return;
  }
  pcVar50 = *(code **)(in_t9 + 0x38e40);
  pcVar52 = share_xchannel_failure;
  (*pcVar50)();
  pcStack_78 = pcVar50 + 0x40180;
  uStack_70 = psVar33->server_id;
  psVar37 = (ssh_sharing_connstate *)&DAT_00000061;
  puVar44 = &uStack_70;
  psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x38ccc);
  iStack_7c = *(int *)(pcVar50 + 0x38200) + -0x4248;
  ppStack_6c = psVar43->fn;
  auStack_80[0] = '\0';
  auStack_80[1] = '\0';
  auStack_80[2] = '\0';
  auStack_80[3] = '\x04';
  psStack_68 = psVar42;
  psStack_64 = unaff_s1;
  iStack_60 = unaff_s2;
  pcStack_5c = pcVar52;
  (**(code **)(pcVar50 + 0x389b8))(psVar30->parent->ssh,psVar30->id);
  psVar33->live = 0;
  cs_00 = psVar30;
  share_dead_xchannel_respond(psVar30,psVar33);
  if (ppStack_6c == psVar43->fn) {
    return;
  }
  pcVar50 = *(code **)(pcStack_78 + -0x74e0);
  pcVar52 = share_receive;
  (*pcVar50)();
  iVar17 = cs_00->crLine;
  piVar51 = *(int **)(pcVar50 + 0x38c10);
  iStack_bc = *piVar51;
  psVar47 = cs;
  psStack_b8 = psVar33;
  psStack_b4 = psVar30;
  psStack_b0 = psVar43;
  piStack_ac = unaff_s3;
  pppsStack_a8 = unaff_s4;
  psStack_a4 = cs;
  psStack_a0 = psVar46;
  iStack_9c = iVar39;
  psStack_98 = xc;
  pcStack_94 = pcVar52;
  if (iVar17 != 0x709) {
    if (0x709 < iVar17) {
      puVar45 = puVar44;
      if (iVar17 == 0x72e) goto LAB_000784dc;
      if (iVar17 != 0x73b) goto LAB_00078210;
      goto LAB_00078104;
    }
    if (iVar17 != 0) goto LAB_00078210;
    cs_00->recvlen = 0;
  }
  if (puVar44 == (uint *)0x0) {
LAB_000781c4:
    cs_00->crLine = 0x709;
LAB_00078214:
    do {
      if (iStack_bc == *piVar51) {
        return;
      }
      (**(code **)(pcVar50 + 0x38be4))();
      puVar45 = puVar44;
      psVar37 = psVar47;
LAB_00078f28:
      ppStack_c0 = psStack_108->fn;
      send_packet_to_downstream
                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,(share_channel *)0x0,
                 (share_channel *)0xc);
      (**(code **)(pcVar50 + 0x38124))(psVar46);
      cs_00->recvlen = 0;
LAB_000784dc:
      psVar30 = (ssh_sharing_connstate *)((int)puVar45 + (int)(psVar37->recvbuf + -0x20));
      psVar47 = psVar37;
      do {
        puVar44 = (uint *)((int)psVar30 + (-1 - (int)psVar47));
        if (psVar47 == psVar30) {
          cs_00->crLine = 0x72e;
          goto LAB_00078214;
        }
        iVar39 = cs_00->recvlen;
        psVar37 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);
        iVar17 = iVar39 + 1;
        bVar1 = *(byte *)&psVar47->fn;
        in_t3 = (uint)bVar1;
        cs_00->recvlen = iVar17;
        cs_00->recvbuf[iVar39] = bVar1;
        psVar47 = psVar37;
      } while (iVar17 < 4);
      iVar39 = (**(code **)(pcVar50 + 0x38248))(*(int *)cs_00->recvbuf + 4);
      cs_00->curr_packetlen = iVar39;
      puVar45 = puVar44;
      if (iVar39 - 5U < 0x400c) {
        psVar46 = (ssh_sharing_connstate *)cs_00->recvlen;
        while (psVar47 = psVar37, (int)psVar46 < iVar39) {
LAB_00078104:
          if (puVar45 == (uint *)0x0) {
            cs_00->crLine = 0x73b;
            puVar44 = (uint *)0x0;
            goto LAB_00078214;
          }
          iVar39 = cs_00->recvlen;
          uVar32 = *(uchar *)&psVar37->fn;
          psVar37 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);
          psVar46 = (ssh_sharing_connstate *)(iVar39 + 1);
          cs_00->recvlen = (int)psVar46;
          cs_00->recvbuf[iVar39] = uVar32;
          puVar45 = (uint *)((int)puVar45 + -1);
          iVar39 = cs_00->curr_packetlen;
        }
        bVar1 = cs_00->recvbuf[4];
        puVar36 = cs_00->recvbuf + 5;
        puVar25 = (undefined1 *)((int)&psVar46[-1].globreq_head + 3);
        if (bVar1 != 0x5a) {
          if (bVar1 < 0x5b) {
            if (bVar1 != 2) {
              if (2 < bVar1) {
                if (bVar1 == 4) goto LAB_00078844;
                if (bVar1 != 0x50) goto LAB_0007878c;
                iVar39 = *(int *)(pcVar50 + 0x38144);
                psVar30 = psVar43;
                if ((int)puVar25 < 4) goto LAB_0007882c;
                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);
                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);
                psVar47 = psStack_e8;
                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))
                goto LAB_00078828;
                iVar39 = (**(code **)(pcVar50 + 0x38c4c))
                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);
                if (iVar39 != 0) {
                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))
                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);
                  pcVar52 = *(code **)(pcVar50 + 0x38124);
                  psVar43 = psVar30;
                  if (iVar39 == 0) {
                    (*pcVar52)(psVar47);
                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);
                    psVar47 = psStack_e8;
                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&
                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),
                       (int)psStack_e8 < (int)puVar25)) {
                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);
                      iVar17 = (int)puVar25 - (int)puVar24;
                      cVar2 = *(char *)&psStack_108->fn;
                      if ((iVar17 < 4) ||
                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,
                                                   (int *)&psStack_e8), iVar39 == 0)) {
                        iVar39 = *(int *)(pcVar50 + 0x38144);
                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {
                          if (iVar17 >= 4) goto LAB_000783d4;
LAB_0007901c:
                          uVar38 = 0x5a7;
                          goto LAB_00079020;
                        }
                      }
                      else {
                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);
                        iVar39 = *(int *)(pcVar50 + 0x38144);
                        if (-1 < (int)psVar47) {
                          pcVar52 = *(code **)(pcVar50 + 0x38158);
                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;
LAB_000783d4:
                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,
                                                   (char **)&psStack_e8,(int *)0x0);
                          psVar43 = psStack_e8;
                          if ((iVar39 == 0) ||
                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))
                          goto LAB_0007901c;
                          puVar48 = puVar36 + (int)psVar47;
                          bVar1 = *puVar48;
                          bVar3 = puVar48[1];
                          bVar4 = puVar48[3];
                          bVar5 = puVar48[2];
                          psStack_e8 = (ssh_sharing_connstate *)
                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);
                          psStack_e4 = (ssh_sharing_connstate *)
                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |
                                       (uint)bVar5 << 8);
                          psVar46 = (ssh_sharing_connstate *)
                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);
                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);
                          if (psVar46 == (ssh_sharing_connstate *)0x0) {
                            pcVar52 = *(code **)(pcVar50 + 0x38124);
                            if (cVar2 != '\0') {
                              send_packet_to_downstream
                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,
                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,
                                         (share_channel *)0x0,(share_channel *)0xc);
                              goto LAB_000784c4;
                            }
                          }
                          else {
                            cVar2 = *(char *)&psStack_108->fn;
                            *(undefined1 *)&psStack_108->fn = 1;
                            if (cVar2 == '\0') {
                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;
                            }
                            else {
                              iVar39 = 0;
                            }
                            (**(code **)(pcVar50 + 0x388fc))
                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);
                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);
LAB_000784c4:
                            pcVar52 = *(code **)(pcVar50 + 0x38124);
                          }
                          (*pcVar52)(psVar43);
                          goto LAB_000784d4;
                        }
                      }
                      goto LAB_0007882c;
                    }
                  }
                  else {
LAB_00079040:
                    (*pcVar52)();
                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);
                    psVar30 = psVar43;
                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&
                       ((int)psStack_e8 < (int)puVar25)) {
                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;
                      send_packet_to_downstream
                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,
                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,
                                 (share_channel *)0x0,(share_channel *)0xc);
                      cs_00->recvlen = 0;
                      goto LAB_000784dc;
                    }
                  }
LAB_00078828:
                  iVar39 = *(int *)(pcVar50 + 0x38144);
                  goto LAB_0007882c;
                }
                (**(code **)(pcVar50 + 0x38124))(psVar47);
                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);
                psVar43 = psStack_e8;
                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||
                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),
                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;
                puVar48 = puVar36 + (int)psStack_e8;
                iVar17 = (int)puVar25 - (int)puVar24;
                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;
                if ((iVar17 < 4) ||
                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,
                                             (int *)&psStack_e8), iVar39 == 0)) {
                  iVar39 = *(int *)(pcVar50 + 0x38144);
                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {
                    if (iVar17 >= 4) goto LAB_0007918c;
LAB_00079434:
                    uVar38 = 0x55e;
LAB_00079020:
                    pcVar52 = *(code **)(pcVar50 + 0x38a34);
                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,
                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,
                               *(int *)(pcVar50 + 0x38144) + -0x3e30);
                    psVar43 = psVar30;
                    goto LAB_00079040;
                  }
LAB_0007882c:
                  pcVar52 = *(code **)(pcVar50 + 0x38158);
                }
                else {
                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);
                  iVar39 = *(int *)(pcVar50 + 0x38144);
                  if ((int)psVar43 < 0) goto LAB_0007882c;
                  pcVar52 = *(code **)(pcVar50 + 0x38158);
                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {
LAB_0007918c:
                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,
                                             (int *)0x0);
                    psVar47 = psStack_e8;
                    if ((iVar39 == 0) ||
                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))
                    goto LAB_00079434;
                    puVar49 = puVar36 + (int)psVar43;
                    psVar43 = (ssh_sharing_connstate *)
                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10
                              | (uint)puVar49[2] << 8);
                    iVar39 = (**(code **)(pcVar50 + 0x38928))
                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);
                    if (iVar39 == 0) {
                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {
                        send_packet_to_downstream
                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,
                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,
                                   (share_channel *)0x0,(share_channel *)0xc);
                      }
                    }
                    else {
                      bVar1 = *puVar48;
                      *puVar48 = 1;
                      if (bVar1 == 0) {
                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;
                      }
                      else {
                        iVar39 = 0;
                      }
                      (**(code **)(pcVar50 + 0x388fc))
                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);
                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);
                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);
                      t = cs_00->forwardings;
                      e->host = pcVar18;
                      e->port = (int)psVar43;
                      e->active = 0;
                      psVar27 = (share_forwarding *)add234(t,e);
                      if (e == psVar27) {
                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);
                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);
                        psVar31 = cs_00->globreq_tail;
                        psVar28->next = (share_globreq *)0x0;
                        if (psVar31 == (share_globreq *)0x0) {
                          cs_00->globreq_head = psVar28;
                        }
                        else {
                          psVar31->next = psVar28;
                        }
                        psVar28->fwd = e;
                        psVar28->type = 0;
                        psVar28->want_reply = (int)psStack_108;
                      }
                      else {
                        (**(code **)(pcVar50 + 0x38124))(e);
                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);
                      }
                    }
                    (**(code **)(pcVar50 + 0x38124))(psVar47);
                    cs_00->recvlen = 0;
                    psVar46 = psVar47;
                    goto LAB_000784dc;
                  }
                }
LAB_00078830:
                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);
                psVar43 = psVar30;
                goto LAB_000787a4;
              }
              if (bVar1 != 1) {
LAB_0007878c:
                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))
                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);
                goto LAB_000787a4;
              }
              (*(*cs_00->sock)->close)(cs_00->sock);
              cs_00->sock = (Socket)0x0;
              share_try_cleanup(cs_00);
              cs_00->recvlen = 0;
              goto LAB_000784dc;
            }
LAB_00078844:
            puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3);
            if ((bVar1 == 0x62) &&
               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)) {
              psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);
              iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,
                                       (int *)0x0);
              psVar30 = psStack_e8;
              if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {
                psStack_108 = psStack_e8;
                iVar39 = (**(code **)(pcVar50 + 0x38c4c))
                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);
                if ((iVar39 == 0) &&
                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {
                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);
                  (**(code **)(pcVar50 + 0x38124))(psVar30);
                  ppsStack_e0 = ppsVar20;
                  puVar29 = (undefined4 *)
                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);
                  if (puVar29 == (undefined4 *)0x0) {
                    pcVar52 = *(code **)(pcVar50 + 0x38158);
                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;
LAB_000794d0:
                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);
                    share_disconnect(cs_00,pcVar18);
                    (**(code **)(pcVar50 + 0x38124))(pcVar18);
                    cs_00->recvlen = 0;
                  }
                  else {
                    ppStack_c0 = (plug_function_table *)*puVar29;
                    send_packet_to_downstream
                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,
                               (share_channel *)0x0,(share_channel *)0xc);
                    cs_00->recvlen = 0;
                  }
                  goto LAB_000784dc;
                }
                iVar39 = *(int *)(pcVar50 + 0x380fc);
                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);
                if (iVar17 != 0) {
                  (**(code **)(pcVar50 + 0x38124))(psVar30);
                  psStack_108 = psVar30;
                  goto LAB_00078df8;
                }
                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);
                (**(code **)(pcVar50 + 0x38124))(psVar30);
                ppsStack_e0 = ppsVar20;
                psStack_108 = (ssh_sharing_connstate *)
                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);
                if (psStack_108 == (ssh_sharing_connstate *)0x0) {
                  pcVar52 = *(code **)(pcVar50 + 0x38158);
                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;
                  goto LAB_000794d0;
                }
                if ((int)puVar25 < 0x11) {
                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))
                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);
                  goto LAB_000787a4;
                }
                uVar32 = cs_00->recvbuf[0x14];
                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);
                uVar6 = cs_00->recvbuf[0x15];
                if ((int)puVar24 < 4) {
                  iVar17 = x11_identify_auth_proto((char *)0x0);
                  (**(code **)(pcVar50 + 0x38124))(0);
LAB_0007949c:
                  psVar46 = (ssh_sharing_connstate *)0xffffffff;
                }
                else {
                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,
                                           (int *)0x0);
                  psVar46 = psStack_e8;
                  if (iVar17 == 0) {
                    FUN_0007896c();
                    return;
                  }
                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);
                  (**(code **)(pcVar50 + 0x38124))(psVar46);
                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,
                                           (int *)&psStack_e8);
                  psVar46 = psStack_e8;
                  if (iVar21 == 0) goto LAB_0007949c;
                }
                puVar48 = (uchar *)((int)&psVar46->crLine + 1);
                iVar21 = (int)puVar25 - (int)puVar48;
                psVar46 = (ssh_sharing_connstate *)0x0;
                if (iVar21 < 4) {
LAB_00078ff4:
                  psVar30 = (ssh_sharing_connstate *)0xffffffff;
                }
                else {
                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,
                                           (int *)0x0);
                  psVar46 = psStack_e8;
                  if (iVar22 == 0) {
                    psVar46 = (ssh_sharing_connstate *)0x0;
                  }
                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,
                                           (int *)&psStack_e8);
                  psVar30 = psStack_e8;
                  if (iVar21 == 0) goto LAB_00078ff4;
                }
                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {
                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))
                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);
                  (**(code **)(pcVar50 + 0x38124))(psVar46);
                  goto LAB_000787a4;
                }
                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);
                if (-1 < iVar17) {
                  uVar7 = *puVar36;
                  bVar13 = uVar6 != '\0';
                  uVar6 = puVar36[1];
                  uVar8 = puVar36[3];
                  uVar9 = puVar36[2];
                  psStack_108->got_verstring = iVar17;
                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);
                  pcVar52 = *(code **)(pcVar50 + 0x38124);
                  psStack_108->curr_packetlen = (int)pvVar23;
                  (*pcVar52)(psVar46);
                  iVar17 = (**(code **)(pcVar50 + 0x38920))
                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);
                  psStack_108->sent_verstring = iVar17;
                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;
                  psVar43 = (ssh_sharing_connstate *)
                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));
                  psVar46 = (ssh_sharing_connstate *)
                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));
                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;
                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);
                  puVar24[4] = 0;
                  puVar24[5] = 0;
                  uVar35 = *(uint *)(iVar39 + 0x429c);
                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);
                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);
                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);
                  puVar24[3] = (char)ppsVar20;
                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);
                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);
                  puVar24[2] = (char)((uint)ppsVar20 >> 8);
                  puVar24[7] = 7;
                  puVar24[6] = 0;
                  puVar25 = puVar24 + 8;
                  uVar41 = (uint)puVar25 & 3;
                  *(uint *)(puVar25 + -uVar41) =
                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;
                  puVar25 = puVar24 + 0xb;
                  uVar41 = (uint)puVar25 & 3;
                  *(uint *)(puVar25 + -uVar41) =
                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |
                       uVar35 << (3 - uVar41) * 8;
                  puVar24[0xc] = uVar10;
                  puVar24[0xd] = uVar11;
                  puVar24[0xe] = uVar12;
                  puVar24[0x10] = bVar13;
                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);
                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);
                  puVar24[0x13] = (char)((uint)psVar43 >> 8);
                  puVar24[0x14] = (char)psVar43;
                  pcVar52 = *(code **)(pcVar50 + 0x38c14);
                  puVar24[0xf] = uVar32 != '\0';
                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),
                             psVar43);
                  puVar25 = puVar24 + (int)psVar43;
                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);
                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);
                  puVar25[0x17] = (char)((uint)psVar46 >> 8);
                  puVar25[0x18] = (char)psVar46;
                  (**(code **)(pcVar50 + 0x38c14))
                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),
                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);
                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));
                  puVar25[0x1c] = uVar8;
                  puVar25[0x19] = uVar7;
                  puVar25[0x1a] = uVar6;
                  puVar25[0x1b] = uVar9;
                  (**(code **)(pcVar50 + 0x388fc))
                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);
                  (**(code **)(pcVar50 + 0x38124))(puVar24);
                  cs_00->recvlen = 0;
                  goto LAB_000784dc;
                }
                goto LAB_00078f28;
              }
            }
LAB_00078df8:
            (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0);
            if ((bVar1 == 0x61) && (3 < (int)puVar25)) {
              ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);
              psVar26 = (share_channel *)
                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);
              if (psVar26 != (share_channel *)0x0) {
                if (psVar26->state == 2) {
                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);
                  share_remove_channel(cs_00,psVar26);
                  cs_00->recvlen = 0;
                }
                else {
                  psVar26->state = 1;
                  cs_00->recvlen = 0;
                }
                goto LAB_000784dc;
              }
            }
          }
          else {
            if (bVar1 == 0x5c) {
              if (3 < (int)puVar25) {
                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);
                psVar46 = (ssh_sharing_connstate *)&psStack_e8;
                psStack_e8 = psVar43;
                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);
                if (pvVar23 == (void *)0x0) {
                  psStack_e4 = psVar43;
                  psVar33 = (share_xchannel *)
                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);
                  if (psVar33 == (share_xchannel *)0x0) {
                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))
                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);
                    goto LAB_000787a4;
                  }
                  share_xchannel_failure(cs_00,psVar33);
                  cs_00->recvlen = 0;
                }
                else {
                  psVar19 = cs_00->parent;
                  uVar38 = 0x5c;
LAB_000786e4:
                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);
                  del234(cs_00->halfchannels,pvVar23);
                  (**(code **)(pcVar50 + 0x38124))(pvVar23);
                  cs_00->recvlen = 0;
                }
                goto LAB_000784dc;
              }
              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))
                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);
              goto LAB_000787a4;
            }
            if (0x5b < bVar1) {
              if (100 < bVar1) goto LAB_0007878c;
              goto LAB_00078844;
            }
            if ((int)puVar25 < 0x10) {
              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))
                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);
              goto LAB_000787a4;
            }
            uVar41 = (uint)(cs_00->recvbuf + 5) & 3;
            upstream_id = *(uint *)(cs_00->recvbuf + 9);
            uVar35 = (uint)(cs_00->recvbuf + 8) & 3;
            psVar43 = (ssh_sharing_connstate *)
                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |
                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |
                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8);
            psStack_e8 = psVar43;
            pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0);
            if (pvVar23 == (void *)0x0) {
              psStack_e4 = psVar43;
              psVar46 = (ssh_sharing_connstate *)
                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);
              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;
              ppVar16 = psVar46->fn;
            }
            else {
              psVar46 = (ssh_sharing_connstate *)0x0;
              ppVar16 = (plug_function_table *)
                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);
            }
            cs_00->recvbuf[0xc] = (uchar)ppVar16;
            cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18);
            cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10);
            cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8);
            uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3;
            uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3;
            psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,
                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,
                                        (int)psVar43,0,
                                        (ssh_sharing_connstate *)
                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |
                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &
                                         -1 << (uVar35 + 1) * 8 |
                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>
                                        (3 - uVar35) * 8));
            if (pvVar23 != (void *)0x0) {
              psVar19 = cs_00->parent;
              uVar38 = 0x5b;
              goto LAB_000786e4;
            }
            if (psVar46 != (ssh_sharing_connstate *)0x0) {
              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);
              if (uVar41 < 0x100) {
                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))
                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);
                goto LAB_000787a4;
              }
              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);
              share_remove_xchannel
                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,
                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);
              cs_00->recvlen = 0;
              goto LAB_000784dc;
            }
          }
LAB_000784d4:
          cs_00->recvlen = 0;
          goto LAB_000784dc;
        }
        iVar39 = *(int *)(pcVar50 + 0x38144);
        if (3 < (int)puVar25) {
          iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);
          if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||
             (psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),
             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8)) {
            iVar39 = *(int *)(pcVar50 + 0x38144);
            goto LAB_00078e80;
          }
          pppVar14 = &psStack_e8->fn;
          pppVar15 = &psStack_e8->fn;
          psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)((int)&psStack_e8->fn + 2));
          psVar46 = (ssh_sharing_connstate *)
                    ((uint)*(byte *)&psVar43->fn << 0x18 |
                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |
                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8)
          ;
          uVar41 = (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);
          share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,
                            (uint)&cs_00->channels_by_server,(uint)psVar46,uVar41,0,3,
                            (ssh_sharing_connstate *)
                            ((uint)*(byte *)&psVar43->sock << 0x18 |
                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |
                             (uint)*(uchar *)((int)&psVar43->sock + 3) |
                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8));
          *(char *)&psVar43->fn = (char)(uVar41 >> 0x18);
          puVar36[(int)((int)pppVar14 + 1)] = (byte)(uVar41 >> 0x10);
          *(char *)&psStack_108->fn = (char)(uVar41 >> 8);
          puVar36[(int)((int)pppVar15 + 3)] = (byte)uVar41;
          (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,0x5a,puVar36,puVar25,0);
          cs_00->recvlen = 0;
          goto LAB_000784dc;
        }
LAB_00078e80:
        pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(iVar39 + -0x4114);
LAB_000787a4:
        while (pcVar18 == (char *)0x0) {
          (**(code **)(pcVar50 + 0x38a34))
                    (*(int *)(pcVar50 + 0x38144) + -0x3f38,*(int *)(pcVar50 + 0x38144) + -0x42c4,
                     0x6e6,*(int *)(pcVar50 + 0x38144) + -0x3e30);
LAB_0007927c:
          pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))
                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43);
        }
        share_disconnect(cs_00,pcVar18);
        (**(code **)(pcVar50 + 0x38124))(pcVar18);
        cs_00->recvlen = 0;
        goto LAB_000784dc;
      }
      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))
                                  (*(int *)(pcVar50 + 0x38144) + -0x415c,iVar39);
LAB_000781e4:
      share_disconnect(cs_00,pcVar18);
      (**(code **)(pcVar50 + 0x38124))(pcVar18);
      puVar44 = puVar45;
      psVar47 = psVar37;
LAB_00078210:
      cs_00->crLine = 0;
    } while( true );
  }
  uVar41 = cs_00->recvlen;
  uVar32 = *(uchar *)&psVar37->fn;
  puVar40 = (uint *)((int)puVar44 + -1);
  psVar30 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);
  puVar45 = puVar40;
  if (uVar32 == '\n') {
LAB_0007855c:
    psVar37 = psVar30;
    if (0x2d < uVar41) {
      psVar43 = (ssh_sharing_connstate *)cs_00->recvbuf;
      iVar39 = (**(code **)(pcVar50 + 0x38bf8))(psVar43,*(int *)(pcVar50 + 0x38144) + -0x3e10,0x2e);
      if (iVar39 == 0) {
        if ((0 < (int)uVar41) && (cs_00->recvbuf[uVar41 - 1] == '\r')) {
          cs_00->recvlen = uVar41 - 1;
          uVar41 = uVar41 - 1;
        }
        (**(code **)(pcVar50 + 0x388f4))
                  (cs_00->parent->ssh,cs_00->id,*(int *)(pcVar50 + 0x38144) + -0x417c,uVar41,psVar43
                  );
        cs_00->got_verstring = 1;
        cs_00->recvlen = 0;
        goto LAB_000784dc;
      }
    }
    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41ac);
    goto LAB_000781e4;
  }
  psVar34 = (ssh_sharing_connstate *)((int)puVar44 + (int)(psVar37->recvbuf + -0x20));
  if (uVar41 < 0x4010) {
    uVar41 = uVar41 + 1;
    psVar47 = psVar30;
    do {
      cs_00->recvlen = uVar41;
      cs_00->recvbuf[uVar41 - 1] = uVar32;
      if (psVar34 == psVar47) goto LAB_000781c4;
      puVar44 = (uint *)((int)puVar40 + ((int)psVar37 - (int)psVar47));
      psVar30 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);
      uVar32 = *(uchar *)&psVar47->fn;
      puVar45 = puVar44;
      if (uVar32 == '\n') goto LAB_0007855c;
      uVar41 = uVar41 + 1;
      psVar47 = psVar30;
    } while (uVar41 != 0x4011);
  }
  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41cc);
  puVar45 = puVar44;
  psVar37 = psVar30;
  goto LAB_000781e4;
}



void share_xchannel_confirmation(byte *param_1,int param_2,undefined4 *param_3,int param_4)

{
  byte bVar1;
  byte bVar2;
  byte bVar3;
  byte bVar4;
  char cVar5;
  char cVar6;
  undefined1 uVar7;
  undefined1 uVar8;
  undefined1 uVar9;
  bool bVar10;
  int iVar11;
  byte ****ppppbVar12;
  int iVar13;
  byte ****ppppbVar14;
  undefined1 *puVar15;
  byte *pbVar16;
  undefined4 *puVar17;
  int iVar18;
  byte bVar21;
  undefined4 uVar19;
  undefined4 *puVar20;
  int iVar22;
  uint uVar23;
  undefined1 *puVar24;
  byte *pbVar25;
  byte *pbVar26;
  int iVar27;
  uint in_t3;
  byte *pbVar28;
  undefined4 *puVar29;
  uint uVar30;
  byte *pbVar31;
  undefined4 *unaff_s1;
  undefined *unaff_s2;
  byte *****pppppbVar32;
  byte *****pppppbVar33;
  undefined4 *unaff_s3;
  byte *unaff_s4;
  byte *pbVar34;
  byte *****pppppbVar35;
  byte *****pppppbVar36;
  undefined *puVar37;
  code *pcVar38;
  int *piVar39;
  code *pcVar40;
  undefined4 uVar41;
  byte ****ppppbStack_108;
  byte ****ppppbStack_e8;
  byte ****ppppbStack_e4;
  undefined4 uStack_e0;
  byte ***pppbStack_c0;
  int iStack_bc;
  int iStack_b8;
  int iStack_b4;
  byte ****ppppbStack_b0;
  undefined4 *puStack_ac;
  byte *pbStack_a8;
  byte *pbStack_a4;
  undefined *puStack_a0;
  int iStack_9c;
  int iStack_98;
  undefined4 uStack_94;
  undefined4 uStack_80;
  int iStack_7c;
  undefined *puStack_78;
  undefined4 uStack_70;
  byte ***pppbStack_6c;
  undefined4 *puStack_68;
  undefined4 *puStack_64;
  undefined *puStack_60;
  code *pcStack_5c;
  undefined4 *local_48;
  undefined4 *local_44;
  undefined4 local_34;
  undefined1 local_30;
  undefined1 local_2f;
  undefined1 local_2e;
  undefined1 local_2d;
  int local_2c;
  
  pppppbVar35 = (byte *****)PTR___stack_chk_guard_000b0c9c;
  puVar29 = *(undefined4 **)(param_2 + 0x10);
  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;
  if (puVar29 != (undefined4 *)0x0) {
    unaff_s4 = param_1 + 8;
    unaff_s3 = param_3 + 3;
    unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;
    do {
      iVar27 = puVar29[3];
      puVar24 = (undefined1 *)puVar29[2];
      *(undefined4 *)(param_2 + 0x10) = *puVar29;
      if (3 < iVar27) {
        *puVar24 = *(undefined1 *)param_3;
        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;
        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);
        *(char *)(puVar29[2] + 3) = (char)*param_3;
        puVar24 = (undefined1 *)puVar29[2];
        iVar27 = puVar29[3];
      }
      local_48 = param_3;
      local_44 = unaff_s3;
      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);
      (*(code *)PTR_safefree_000b01b0)(puVar29);
      puVar29 = *(undefined4 **)(param_2 + 0x10);
      unaff_s1 = param_3;
    } while (puVar29 != (undefined4 *)0x0);
  }
  local_34 = *(undefined4 *)(param_2 + 4);
  param_4 = param_4 - *(int *)(param_2 + 0xc);
  iVar27 = *(int *)(*(int *)(param_1 + 0xc) + 0x14);
  local_44 = (undefined4 *)(PTR_DAT_000b01d0 + -0x4224);
  iVar22 = *(int *)(param_1 + 4);
  local_30 = (undefined1)((uint)param_4 >> 0x18);
  local_2e = (undefined1)((uint)param_4 >> 8);
  local_48 = (undefined4 *)0x8;
  local_2f = (undefined1)((uint)param_4 >> 0x10);
  local_2d = (undefined1)param_4;
  (*(code *)PTR_ssh_send_packet_from_downstream_000b0988)(iVar27,iVar22,0x5d,&local_34);
  if ((byte ****)local_2c == *pppppbVar35) {
    return;
  }
  pcVar40 = share_xchannel_failure;
  puVar37 = PTR___stack_chk_fail_000b0c70;
  (*(code *)PTR___stack_chk_fail_000b0c70)();
  puStack_78 = puVar37 + 0x40180;
  uStack_70 = *(undefined4 *)(iVar22 + 4);
  pbVar25 = &DAT_00000061;
  pbVar31 = (byte *)&uStack_70;
  pppppbVar32 = *(byte ******)(puVar37 + 0x38ccc);
  iStack_7c = *(int *)(puVar37 + 0x38200) + -0x4248;
  pppbStack_6c = (byte ***)*pppppbVar32;
  uStack_80 = 4;
  puStack_68 = puVar29;
  puStack_64 = unaff_s1;
  puStack_60 = unaff_s2;
  pcStack_5c = pcVar40;
  (**(code **)(puVar37 + 0x389b8))
            (*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4));
  *(undefined4 *)(iVar22 + 8) = 0;
  iVar18 = iVar27;
  share_dead_xchannel_respond(iVar27,iVar22);
  if ((byte ****)pppbStack_6c == *pppppbVar32) {
    return;
  }
  pcVar40 = *(code **)(puStack_78 + -0x74e0);
  uVar41 = 0x7808c;
  (*pcVar40)();
  iVar11 = *(int *)(iVar18 + 0x10);
  piVar39 = *(int **)(pcVar40 + 0x38c10);
  puStack_a0 = (undefined *)pppppbVar35;
  iStack_bc = *piVar39;
  pbVar34 = pbVar31;
  iStack_b8 = iVar22;
  iStack_b4 = iVar27;
  ppppbStack_b0 = (byte ****)pppppbVar32;
  puStack_ac = unaff_s3;
  pbStack_a8 = unaff_s4;
  pbStack_a4 = param_1;
  iStack_9c = param_4;
  iStack_98 = param_2;
  uStack_94 = uVar41;
  if (iVar11 != 0x709) {
    if (0x709 < iVar11) {
      if (iVar11 == 0x72e) goto LAB_000784dc;
      if (iVar11 != 0x73b) goto LAB_00078210;
      goto LAB_00078104;
    }
    if (iVar11 != 0) goto LAB_00078210;
    *(undefined4 *)(iVar18 + 0x4030) = 0;
  }
  if (pbVar31 == (byte *)0x0) {
LAB_000781c4:
    *(undefined4 *)(iVar18 + 0x10) = 0x709;
LAB_00078214:
    do {
      if (iStack_bc == *piVar39) {
        return;
      }
      (**(code **)(pcVar40 + 0x38be4))();
      pbVar25 = param_1;
LAB_00078f28:
      pppbStack_c0 = *ppppbStack_108;
      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);
      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);
      *(undefined4 *)(iVar18 + 0x4030) = 0;
LAB_000784dc:
      pbVar31 = pbVar25 + (int)pbVar34;
      param_1 = pbVar25;
      do {
        pbVar34 = pbVar31 + (-1 - (int)param_1);
        if (param_1 == pbVar31) {
          *(undefined4 *)(iVar18 + 0x10) = 0x72e;
          goto LAB_00078214;
        }
        iVar27 = *(int *)(iVar18 + 0x4030);
        pbVar25 = param_1 + 1;
        iVar22 = iVar27 + 1;
        bVar21 = *param_1;
        in_t3 = (uint)bVar21;
        *(int *)(iVar18 + 0x4030) = iVar22;
        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;
        param_1 = pbVar25;
      } while (iVar22 < 4);
      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);
      *(int *)(iVar18 + 0x1c) = iVar27;
      if (iVar27 - 5U < 0x400c) {
        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);
        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {
LAB_00078104:
          if (pbVar34 == (byte *)0x0) {
            *(undefined4 *)(iVar18 + 0x10) = 0x73b;
            pbVar34 = (byte *)0x0;
            goto LAB_00078214;
          }
          iVar27 = *(int *)(iVar18 + 0x4030);
          pbVar34 = pbVar34 + -1;
          bVar21 = *pbVar25;
          pbVar25 = pbVar25 + 1;
          pppppbVar35 = (byte *****)(iVar27 + 1);
          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;
          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;
          iVar27 = *(int *)(iVar18 + 0x1c);
        }
        bVar21 = *(byte *)(iVar18 + 0x24);
        iVar27 = iVar18 + 0x25;
        pbVar31 = (byte *)((int)pppppbVar35 + -5);
        if (bVar21 != 0x5a) {
          if (bVar21 < 0x5b) {
            if (bVar21 != 2) {
              if (2 < bVar21) {
                if (bVar21 == 4) goto LAB_00078844;
                if (bVar21 != 0x50) goto LAB_0007878c;
                iVar22 = *(int *)(pcVar40 + 0x38144);
                pppppbVar33 = pppppbVar32;
                if ((int)pbVar31 < 4) goto LAB_0007882c;
                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);
                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);
                ppppbVar12 = ppppbStack_e8;
                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))
                goto LAB_00078828;
                iVar22 = (**(code **)(pcVar40 + 0x38c4c))
                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);
                if (iVar22 != 0) {
                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))
                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);
                  pcVar38 = *(code **)(pcVar40 + 0x38124);
                  pppppbVar32 = pppppbVar33;
                  if (iVar22 == 0) {
                    (*pcVar38)(ppppbVar12);
                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);
                    pppppbVar36 = (byte *****)ppppbStack_e8;
                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&
                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),
                       (int)ppppbStack_e8 < (int)pbVar31)) {
                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);
                      iVar11 = (int)pbVar31 - (int)pbVar28;
                      bVar21 = *(byte *)ppppbStack_108;
                      if ((iVar11 < 4) ||
                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),
                         iVar22 == 0)) {
                        iVar22 = *(int *)(pcVar40 + 0x38144);
                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {
                          if (iVar11 >= 4) goto LAB_000783d4;
LAB_0007901c:
                          uVar41 = 0x5a7;
                          goto LAB_00079020;
                        }
                      }
                      else {
                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);
                        iVar22 = *(int *)(pcVar40 + 0x38144);
                        if (-1 < (int)pppppbVar36) {
                          pcVar38 = *(code **)(pcVar40 + 0x38158);
                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;
LAB_000783d4:
                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);
                          pppppbVar32 = (byte *****)ppppbStack_e8;
                          if ((iVar22 == 0) ||
                             (pppppbVar33 = (byte *****)ppppbStack_e8,
                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;
                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);
                          bVar1 = *pbVar28;
                          bVar2 = pbVar28[1];
                          bVar3 = pbVar28[3];
                          bVar4 = pbVar28[2];
                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)
                          ;
                          ppppbStack_e4 =
                               (byte ****)
                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |
                               (uint)bVar4 << 8);
                          pppppbVar35 = (byte *****)
                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);
                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);
                          if (pppppbVar35 == (byte *****)0x0) {
                            pcVar38 = *(code **)(pcVar40 + 0x38124);
                            if (bVar21 != 0) {
                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,
                                           0xc);
                              goto LAB_000784c4;
                            }
                          }
                          else {
                            bVar21 = *(byte *)ppppbStack_108;
                            *(byte *)ppppbStack_108 = 1;
                            if (bVar21 == 0) {
                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;
                            }
                            else {
                              iVar22 = 0;
                            }
                            (**(code **)(pcVar40 + 0x388fc))
                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),
                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);
                            (**(code **)(pcVar40 + 0x38910))
                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);
LAB_000784c4:
                            pcVar38 = *(code **)(pcVar40 + 0x38124);
                          }
                          (*pcVar38)(pppppbVar32);
                          goto LAB_000784d4;
                        }
                      }
                      goto LAB_0007882c;
                    }
                  }
                  else {
LAB_00079040:
                    (*pcVar38)();
                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);
                    pppppbVar33 = pppppbVar32;
                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&
                       ((int)ppppbStack_e8 < (int)pbVar31)) {
                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;
                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);
                      *(undefined4 *)(iVar18 + 0x4030) = 0;
                      goto LAB_000784dc;
                    }
                  }
LAB_00078828:
                  iVar22 = *(int *)(pcVar40 + 0x38144);
                  goto LAB_0007882c;
                }
                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);
                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);
                pppppbVar32 = (byte *****)ppppbStack_e8;
                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||
                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))
                goto LAB_00078828;
                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);
                iVar11 = (int)pbVar31 - (int)pbVar28;
                ppppbStack_108 = (byte ****)(uint)*pbVar16;
                if ((iVar11 < 4) ||
                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {
                  iVar22 = *(int *)(pcVar40 + 0x38144);
                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {
                    if (iVar11 >= 4) goto LAB_0007918c;
LAB_00079434:
                    uVar41 = 0x55e;
LAB_00079020:
                    pcVar38 = *(code **)(pcVar40 + 0x38a34);
                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,
                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,
                               *(int *)(pcVar40 + 0x38144) + -0x3e30);
                    pppppbVar32 = pppppbVar33;
                    goto LAB_00079040;
                  }
LAB_0007882c:
                  pcVar38 = *(code **)(pcVar40 + 0x38158);
                }
                else {
                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);
                  iVar22 = *(int *)(pcVar40 + 0x38144);
                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;
                  pcVar38 = *(code **)(pcVar40 + 0x38158);
                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {
LAB_0007918c:
                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);
                    ppppbVar12 = ppppbStack_e8;
                    if ((iVar22 == 0) ||
                       (pppppbVar35 = (byte *****)ppppbStack_e8,
                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;
                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);
                    pppppbVar32 = (byte *****)
                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |
                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);
                    iVar22 = (**(code **)(pcVar40 + 0x38928))
                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8
                                        ,pppppbVar32,iVar18);
                    if (iVar22 == 0) {
                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {
                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);
                      }
                    }
                    else {
                      bVar21 = *pbVar16;
                      *pbVar16 = 1;
                      if (bVar21 == 0) {
                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;
                      }
                      else {
                        iVar22 = 0;
                      }
                      (**(code **)(pcVar40 + 0x388fc))
                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),
                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);
                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);
                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);
                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);
                      *puVar29 = uVar41;
                      puVar29[1] = pppppbVar32;
                      puVar29[2] = 0;
                      puVar17 = (undefined4 *)add234(uVar19,puVar29);
                      if (puVar29 == puVar17) {
                        (**(code **)(pcVar40 + 0x38910))
                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);
                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);
                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);
                        *puVar17 = 0;
                        if (puVar20 == (undefined4 *)0x0) {
                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;
                        }
                        else {
                          *puVar20 = puVar17;
                        }
                        puVar17[3] = puVar29;
                        puVar17[1] = 0;
                        puVar17[2] = ppppbStack_108;
                      }
                      else {
                        (**(code **)(pcVar40 + 0x38124))(puVar29);
                        (**(code **)(pcVar40 + 0x38910))
                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);
                      }
                    }
                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);
                    *(undefined4 *)(iVar18 + 0x4030) = 0;
                    pppppbVar35 = (byte *****)ppppbVar12;
                    goto LAB_000784dc;
                  }
                }
LAB_00078830:
                iVar27 = (*pcVar38)(iVar22 + -0x4144);
                pppppbVar32 = pppppbVar33;
                goto LAB_000787a4;
              }
              if (bVar21 != 1) {
LAB_0007878c:
                iVar27 = (**(code **)(pcVar40 + 0x38158))
                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);
                goto LAB_000787a4;
              }
              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));
              *(undefined4 *)(iVar18 + 8) = 0;
              FUN_00077400(iVar18);
              *(undefined4 *)(iVar18 + 0x4030) = 0;
              goto LAB_000784dc;
            }
LAB_00078844:
            if ((bVar21 == 0x62) &&
               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {
              pppppbVar32 = pppppbVar32 + 0x1abc;
              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);
              ppppbVar12 = ppppbStack_e8;
              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {
                ppppbStack_108 = ppppbStack_e8;
                iVar22 = (**(code **)(pcVar40 + 0x38c4c))
                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);
                if ((iVar22 == 0) &&
                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))
                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0
                   )) {
                  uVar41 = *(undefined4 *)(iVar18 + 0x25);
                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);
                  uStack_e0 = uVar41;
                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)
                  ;
                  if (puVar29 == (undefined4 *)0x0) {
                    pcVar38 = *(code **)(pcVar40 + 0x38158);
                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;
LAB_000794d0:
                    uVar41 = (*pcVar38)(iVar27,uVar41);
                    FUN_00077910(iVar18,uVar41);
                    (**(code **)(pcVar40 + 0x38124))(uVar41);
                    *(undefined4 *)(iVar18 + 0x4030) = 0;
                  }
                  else {
                    pppbStack_c0 = (byte ***)*puVar29;
                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);
                    *(undefined4 *)(iVar18 + 0x4030) = 0;
                  }
                  goto LAB_000784dc;
                }
                iVar22 = *(int *)(pcVar40 + 0x380fc);
                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);
                if (iVar11 != 0) {
                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);
                  ppppbStack_108 = ppppbVar12;
                  goto LAB_00078df8;
                }
                uVar41 = *(undefined4 *)(iVar18 + 0x25);
                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);
                uStack_e0 = uVar41;
                ppppbStack_108 =
                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);
                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {
                  pcVar38 = *(code **)(pcVar40 + 0x38158);
                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;
                  goto LAB_000794d0;
                }
                if ((int)pbVar31 < 0x11) {
                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);
                  goto LAB_000787a4;
                }
                cVar5 = *(char *)(iVar18 + 0x34);
                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);
                cVar6 = *(char *)(iVar18 + 0x35);
                if ((int)pbVar28 < 4) {
                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);
                  (**(code **)(pcVar40 + 0x38124))(0);
LAB_0007949c:
                  pppppbVar35 = (byte *****)0xffffffff;
                }
                else {
                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);
                  pppppbVar35 = (byte *****)ppppbStack_e8;
                  if (iVar11 == 0) {
                    pppppbVar35 = (byte *****)0x0;
                  }
                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);
                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);
                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);
                  pppppbVar35 = (byte *****)ppppbStack_e8;
                  if (iVar11 == 0) goto LAB_0007949c;
                }
                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);
                iVar11 = (int)pbVar31 - (int)pbVar28;
                pppppbVar35 = (byte *****)0x0;
                if (iVar11 < 4) {
LAB_00078ff4:
                  pppppbVar33 = (byte *****)0xffffffff;
                }
                else {
                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);
                  pppppbVar35 = (byte *****)ppppbStack_e8;
                  if (iVar13 == 0) {
                    pppppbVar35 = (byte *****)0x0;
                  }
                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);
                  pppppbVar33 = (byte *****)ppppbStack_e8;
                  if (iVar11 == 0) goto LAB_00078ff4;
                }
                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {
                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);
                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);
                  goto LAB_000787a4;
                }
                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;
                if (-1 < (int)ppppbVar12) {
                  bVar21 = *pbVar31;
                  bVar10 = cVar6 != '\0';
                  bVar1 = pbVar31[1];
                  bVar2 = pbVar31[3];
                  bVar3 = pbVar31[2];
                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;
                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);
                  pcVar38 = *(code **)(pcVar40 + 0x38124);
                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;
                  (*pcVar38)(pppppbVar35);
                  ppppbVar12 = (byte ****)
                               (**(code **)(pcVar40 + 0x38920))
                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,
                                          iVar18,ppppbStack_108);
                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;
                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;
                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);
                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);
                  puVar15 = (undefined1 *)
                            (**(code **)(pcVar40 + 0x3815c))
                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);
                  puVar15[4] = 0;
                  puVar15[5] = 0;
                  uVar23 = *(uint *)(iVar22 + 0x429c);
                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);
                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);
                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);
                  puVar15[3] = (char)uVar41;
                  *puVar15 = (char)((uint)uVar41 >> 0x18);
                  puVar15[1] = (char)((uint)uVar41 >> 0x10);
                  puVar15[2] = (char)((uint)uVar41 >> 8);
                  puVar15[7] = 7;
                  puVar15[6] = 0;
                  puVar24 = puVar15 + 8;
                  uVar30 = (uint)puVar24 & 3;
                  *(uint *)(puVar24 + -uVar30) =
                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;
                  puVar24 = puVar15 + 0xb;
                  uVar30 = (uint)puVar24 & 3;
                  *(uint *)(puVar24 + -uVar30) =
                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |
                       uVar23 << (3 - uVar30) * 8;
                  puVar15[0xc] = uVar7;
                  puVar15[0xd] = uVar8;
                  puVar15[0xe] = uVar9;
                  puVar15[0x10] = bVar10;
                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);
                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);
                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);
                  puVar15[0x14] = (char)pppppbVar32;
                  pcVar38 = *(code **)(pcVar40 + 0x38c14);
                  puVar15[0xf] = cVar5 != '\0';
                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);
                  puVar24 = puVar15 + (int)pppppbVar32;
                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);
                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);
                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);
                  puVar24[0x18] = (char)pppppbVar35;
                  (**(code **)(pcVar40 + 0x38c14))
                            (puVar15 + (int)((int)pppppbVar32 + 0x19),
                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);
                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);
                  puVar24[0x1c] = bVar2;
                  puVar24[0x19] = bVar21;
                  puVar24[0x1a] = bVar1;
                  puVar24[0x1b] = bVar3;
                  (**(code **)(pcVar40 + 0x388fc))
                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),
                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,
                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);
                  (**(code **)(pcVar40 + 0x38124))(puVar15);
                  *(undefined4 *)(iVar18 + 0x4030) = 0;
                  goto LAB_000784dc;
                }
                goto LAB_00078f28;
              }
            }
LAB_00078df8:
            (**(code **)(pcVar40 + 0x388fc))
                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),
                       bVar21,iVar27,pbVar31,0);
            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {
              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);
              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);
              if (iVar27 != 0) {
                if (*(int *)(iVar27 + 0x10) == 2) {
                  (**(code **)(pcVar40 + 0x38900))
                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),
                             *(undefined4 *)(iVar27 + 4));
                  FUN_00076738(iVar18,iVar27);
                  *(undefined4 *)(iVar18 + 0x4030) = 0;
                }
                else {
                  *(undefined4 *)(iVar27 + 0x10) = 1;
                  *(undefined4 *)(iVar18 + 0x4030) = 0;
                }
                goto LAB_000784dc;
              }
            }
          }
          else {
            if (bVar21 == 0x5c) {
              if (3 < (int)pbVar31) {
                pppppbVar32 = *(byte ******)(iVar18 + 0x25);
                pppppbVar35 = &ppppbStack_e8;
                ppppbStack_e8 = (byte ****)pppppbVar32;
                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);
                if (iVar22 == 0) {
                  ppppbStack_e4 = (byte ****)pppppbVar32;
                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);
                  if (iVar27 == 0) {
                    iVar27 = (**(code **)(pcVar40 + 0x38158))
                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);
                    goto LAB_000787a4;
                  }
                  share_xchannel_failure(iVar18,iVar27);
                  *(undefined4 *)(iVar18 + 0x4030) = 0;
                }
                else {
                  iVar11 = *(int *)(iVar18 + 0xc);
                  uVar41 = 0x5c;
LAB_000786e4:
                  (**(code **)(pcVar40 + 0x388fc))
                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,
                             iVar27,pbVar31,0);
                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);
                  (**(code **)(pcVar40 + 0x38124))(iVar22);
                  *(undefined4 *)(iVar18 + 0x4030) = 0;
                }
                goto LAB_000784dc;
              }
              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);
              goto LAB_000787a4;
            }
            if (0x5b < bVar21) {
              if (100 < bVar21) goto LAB_0007878c;
              goto LAB_00078844;
            }
            if ((int)pbVar31 < 0x10) {
              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);
              goto LAB_000787a4;
            }
            uVar30 = iVar18 + 0x25U & 3;
            uVar41 = *(undefined4 *)(iVar18 + 0x29);
            uVar23 = iVar18 + 0x28U & 3;
            pppppbVar32 = (byte *****)
                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |
                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &
                           -1 << (uVar23 + 1) * 8 |
                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);
            ppppbStack_e8 = (byte ****)pppppbVar32;
            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);
            if (iVar22 == 0) {
              ppppbStack_e4 = (byte ****)pppppbVar32;
              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);
              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;
              ppppbVar12 = *pppppbVar35;
            }
            else {
              pppppbVar35 = (byte *****)0x0;
              ppppbVar12 = (byte ****)
                           (**(code **)(pcVar40 + 0x38914))
                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);
            }
            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;
            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);
            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);
            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);
            uVar30 = iVar18 + 0x31U & 3;
            uVar23 = iVar18 + 0x34U & 3;
            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,
                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |
                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8
                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);
            if (iVar22 != 0) {
              iVar11 = *(int *)(iVar18 + 0xc);
              uVar41 = 0x5b;
              goto LAB_000786e4;
            }
            if (pppppbVar35 != (byte *****)0x0) {
              if (*(uint *)(iVar18 + 0x2d) < 0x100) {
                iVar27 = (**(code **)(pcVar40 + 0x38158))
                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));
                goto LAB_000787a4;
              }
              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);
              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);
              *(undefined4 *)(iVar18 + 0x4030) = 0;
              goto LAB_000784dc;
            }
          }
LAB_000784d4:
          *(undefined4 *)(iVar18 + 0x4030) = 0;
          goto LAB_000784dc;
        }
        iVar22 = *(int *)(pcVar40 + 0x38144);
        if (3 < (int)pbVar31) {
          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);
          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||
             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),
             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {
            iVar22 = *(int *)(pcVar40 + 0x38144);
            goto LAB_00078e80;
          }
          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);
          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);
          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);
          pppppbVar35 = (byte *****)
                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |
                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);
          uVar41 = (**(code **)(pcVar40 + 0x38914))
                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);
          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,
                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |
                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |
                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |
                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);
          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);
          *pbVar16 = (byte)((uint)uVar41 >> 0x10);
          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);
          *pbVar28 = (byte)uVar41;
          (**(code **)(pcVar40 + 0x388fc))
                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a
                     ,iVar27,pbVar31,0);
          *(undefined4 *)(iVar18 + 0x4030) = 0;
          goto LAB_000784dc;
        }
LAB_00078e80:
        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);
LAB_000787a4:
        while (iVar27 == 0) {
          (**(code **)(pcVar40 + 0x38a34))
                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,
                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);
LAB_0007927c:
          iVar27 = (**(code **)(pcVar40 + 0x38158))
                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);
        }
        FUN_00077910(iVar18,iVar27);
        (**(code **)(pcVar40 + 0x38124))(iVar27);
        *(undefined4 *)(iVar18 + 0x4030) = 0;
        goto LAB_000784dc;
      }
      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);
LAB_000781e4:
      FUN_00077910(iVar18,uVar41);
      (**(code **)(pcVar40 + 0x38124))(uVar41);
      param_1 = pbVar25;
LAB_00078210:
      *(undefined4 *)(iVar18 + 0x10) = 0;
    } while( true );
  }
  uVar30 = *(uint *)(iVar18 + 0x4030);
  bVar21 = *pbVar25;
  pbVar34 = pbVar31 + -1;
  pbVar28 = pbVar25 + 1;
  if (bVar21 == 10) {
LAB_0007855c:
    pbVar25 = pbVar28;
    if (0x2d < uVar30) {
      pppppbVar32 = (byte *****)(iVar18 + 0x20);
      iVar27 = (**(code **)(pcVar40 + 0x38bf8))
                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);
      if (iVar27 == 0) {
        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {
          *(uint *)(iVar18 + 0x4030) = uVar23;
          uVar30 = uVar23;
        }
        (**(code **)(pcVar40 + 0x388f4))
                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),
                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);
        *(undefined4 *)(iVar18 + 0x18) = 1;
        *(undefined4 *)(iVar18 + 0x4030) = 0;
        goto LAB_000784dc;
      }
    }
    uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);
    goto LAB_000781e4;
  }
  pbVar16 = pbVar31;
  if (uVar30 < 0x4010) {
    uVar30 = uVar30 + 1;
    pbVar26 = pbVar25 + (int)pbVar34;
    pbVar34 = pbVar31;
    param_1 = pbVar28;
    do {
      *(uint *)(iVar18 + 0x4030) = uVar30;
      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;
      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;
      pbVar34 = pbVar26 + -(int)param_1;
      pbVar28 = param_1 + 1;
      bVar21 = *param_1;
      if (bVar21 == 10) goto LAB_0007855c;
      uVar30 = uVar30 + 1;
      pbVar16 = pbVar34;
      param_1 = pbVar28;
    } while (uVar30 != 0x4011);
  }
  uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc);
  pbVar34 = pbVar16;
  pbVar25 = pbVar28;
  goto LAB_000781e4;
}


lui gp,0x4
addiu gp,gp,0x320
addu gp,gp,t9
addiu sp,sp,-0x58
sw s6,0x48(sp)
sw s0,0x30(sp)
lw s6,-0x74b4(gp)
lw s0,0x10(a1)
sw gp,0x18(sp)
sw s8,0x50(sp)
or s8,a1,zero
sw s7,0x4c(sp)
or s7,a3,zero
sw s5,0x44(sp)
or s5,a0,zero
sw ra,0x54(sp)
sw s4,0x40(sp)
sw s3,0x3c(sp)
sw s2,0x38(sp)
sw s1,0x34(sp)
lw v0,0x0(s6)
sw v0,0x2c(sp)
beq s0,zero,0x00077f28
_nop
lw s2,-0x7868(gp)
addiu s4,a0,0x8
addiu s3,a2,0xc
or s1,a2,zero
addiu s2,s2,0x68e4
lw a3,0xc(s0)
lw v1,0x0(s0)
lw a2,0x8(s0)
slti v0,a3,0x4
bne v0,zero,0x00077ef4
_sw v1,0x10(s8)
lbu v0,0x0(s1)
sb v0,0x0(a2)
lw v0,0x8(s0)
lhu v1,0x0(s1)
sb v1,0x1(v0)
lw v0,0x0(s1)
lw v1,0x8(s0)
srl v0,v0,0x8
sb v0,0x2(v1)
lw v0,0x8(s0)
lw v1,0x0(s1)
sb v1,0x3(v0)
lw a2,0x8(s0)
lw a3,0xc(s0)
lw a1,0x4(s0)
or a0,s4,zero
or t9,s2,zero
sw s3,0x14(sp)
bal 0x000768e4
_sw s1,0x10(sp)
lw gp,0x18(sp)
lw t9,-0x7fa0(gp)
jalr t9
_or a0,s0,zero
lw s0,0x10(s8)
bne s0,zero,0x00077ea4
_lw gp,0x18(sp)
lw v0,0xc(s8)
addiu a3,sp,0x24
lw a0,0xc(s5)
li a2,0x5d
lw v1,0x4(s8)
subu s7,s7,v0
lw v0,-0x7f80(gp)
lw t9,-0x77c8(gp)
lw a0,0x14(a0)
srl t1,s7,0x18
addiu v0,v0,-0x4224
lw a1,0x4(s5)
srl t0,s7,0x10
sw v1,0x24(sp)
sw v0,0x14(sp)
srl v1,s7,0x8
li v0,0x8
sb t1,0x28(sp)
sb v1,0x2a(sp)
sw v0,0x10(sp)
sb t0,0x29(sp)
jalr t9
_sb s7,0x2b(sp)
lw v1,0x2c(sp)
lw v0,0x0(s6)
bne v1,v0,0x00077fc4
_lw gp,0x18(sp)
lw ra,0x54(sp)
lw s8,0x50(sp)
lw s7,0x4c(sp)
lw s6,0x48(sp)
lw s5,0x44(sp)
lw s4,0x40(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x58
lw t9,-0x74e0(gp)
jalr t9
_nop
(translation_unit "void share_xchannel_confirmation(byte *param_1,int param_2,undefined4 *param_3,int param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  byte bVar4;\n  char cVar5;\n  char cVar6;\n  undefined1 uVar7;\n  undefined1 uVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  int iVar11;\n  byte ****ppppbVar12;\n  int iVar13;\n  byte ****ppppbVar14;\n  undefined1 *puVar15;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  byte bVar21;\n  undefined4 uVar19;\n  undefined4 *puVar20;\n  int iVar22;\n  uint uVar23;\n  undefined1 *puVar24;\n  byte *pbVar25;\n  byte *pbVar26;\n  int iVar27;\n  uint in_t3;\n  byte *pbVar28;\n  undefined4 *puVar29;\n  uint uVar30;\n  byte *pbVar31;\n  undefined4 *unaff_s1;\n  undefined *unaff_s2;\n  byte *****pppppbVar32;\n  byte *****pppppbVar33;\n  undefined4 *unaff_s3;\n  byte *unaff_s4;\n  byte *pbVar34;\n  byte *****pppppbVar35;\n  byte *****pppppbVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  int *piVar39;\n  code *pcVar40;\n  undefined4 uVar41;\n  byte ****ppppbStack_108;\n  byte ****ppppbStack_e8;\n  byte ****ppppbStack_e4;\n  undefined4 uStack_e0;\n  byte ***pppbStack_c0;\n  int iStack_bc;\n  int iStack_b8;\n  int iStack_b4;\n  byte ****ppppbStack_b0;\n  undefined4 *puStack_ac;\n  byte *pbStack_a8;\n  byte *pbStack_a4;\n  undefined *puStack_a0;\n  int iStack_9c;\n  int iStack_98;\n  undefined4 uStack_94;\n  undefined4 uStack_80;\n  int iStack_7c;\n  undefined *puStack_78;\n  undefined4 uStack_70;\n  byte ***pppbStack_6c;\n  undefined4 *puStack_68;\n  undefined4 *puStack_64;\n  undefined *puStack_60;\n  code *pcStack_5c;\n  undefined4 *local_48;\n  undefined4 *local_44;\n  undefined4 local_34;\n  undefined1 local_30;\n  undefined1 local_2f;\n  undefined1 local_2e;\n  undefined1 local_2d;\n  int local_2c;\n  \n  pppppbVar35 = (byte *****)PTR___stack_chk_guard_000b0c9c;\n  puVar29 = *(undefined4 **)(param_2 + 0x10);\n  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;\n  if (puVar29 != (undefined4 *)0x0) {\n    unaff_s4 = param_1 + 8;\n    unaff_s3 = param_3 + 3;\n    unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;\n    do {\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    } while (puVar29 != (undefined4 *)0x0);\n  }\n  local_34 = *(undefined4 *)(param_2 + 4);\n  param_4 = param_4 - *(int *)(param_2 + 0xc);\n  iVar27 = *(int *)(*(int *)(param_1 + 0xc) + 0x14);\n  local_44 = (undefined4 *)(PTR_DAT_000b01d0 + -0x4224);\n  iVar22 = *(int *)(param_1 + 4);\n  local_30 = (undefined1)((uint)param_4 >> 0x18);\n  local_2e = (undefined1)((uint)param_4 >> 8);\n  local_48 = (undefined4 *)0x8;\n  local_2f = (undefined1)((uint)param_4 >> 0x10);\n  local_2d = (undefined1)param_4;\n  (*(code *)PTR_ssh_send_packet_from_downstream_000b0988)(iVar27,iVar22,0x5d,&local_34);\n  if ((byte ****)local_2c == *pppppbVar35) {\n    return;\n  }\n  pcVar40 = share_xchannel_failure;\n  puVar37 = PTR___stack_chk_fail_000b0c70;\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\n  puStack_78 = puVar37 + 0x40180;\n  uStack_70 = *(undefined4 *)(iVar22 + 4);\n  pbVar25 = &DAT_00000061;\n  pbVar31 = (byte *)&uStack_70;\n  pppppbVar32 = *(byte ******)(puVar37 + 0x38ccc);\n  iStack_7c = *(int *)(puVar37 + 0x38200) + -0x4248;\n  pppbStack_6c = (byte ***)*pppppbVar32;\n  uStack_80 = 4;\n  puStack_68 = puVar29;\n  puStack_64 = unaff_s1;\n  puStack_60 = unaff_s2;\n  pcStack_5c = pcVar40;\n  (**(code **)(puVar37 + 0x389b8))\n            (*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4));\n  *(undefined4 *)(iVar22 + 8) = 0;\n  iVar18 = iVar27;\n  share_dead_xchannel_respond(iVar27,iVar22);\n  if ((byte ****)pppbStack_6c == *pppppbVar32) {\n    return;\n  }\n  pcVar40 = *(code **)(puStack_78 + -0x74e0);\n  uVar41 = 0x7808c;\n  (*pcVar40)();\n  iVar11 = *(int *)(iVar18 + 0x10);\n  piVar39 = *(int **)(pcVar40 + 0x38c10);\n  puStack_a0 = (undefined *)pppppbVar35;\n  iStack_bc = *piVar39;\n  pbVar34 = pbVar31;\n  iStack_b8 = iVar22;\n  iStack_b4 = iVar27;\n  ppppbStack_b0 = (byte ****)pppppbVar32;\n  puStack_ac = unaff_s3;\n  pbStack_a8 = unaff_s4;\n  pbStack_a4 = param_1;\n  iStack_9c = param_4;\n  iStack_98 = param_2;\n  uStack_94 = uVar41;\n  if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar11 != 0) goto LAB_00078210;\n    *(undefined4 *)(iVar18 + 0x4030) = 0;\n  }\n  if (pbVar31 == (byte *)0x0) {\nLAB_000781c4:\n    *(undefined4 *)(iVar18 + 0x10) = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );\n  }\n  uVar30 = *(uint *)(iVar18 + 0x4030);\n  bVar21 = *pbVar25;\n  pbVar34 = pbVar31 + -1;\n  pbVar28 = pbVar25 + 1;\n  if (bVar21 == 10) {\nLAB_0007855c:\n    pbVar25 = pbVar28;\n    if (0x2d < uVar30) {\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }\n    uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }\n  pbVar16 = pbVar31;\n  if (uVar30 < 0x4010) {\n    uVar30 = uVar30 + 1;\n    pbVar26 = pbVar25 + (int)pbVar34;\n    pbVar34 = pbVar31;\n    param_1 = pbVar28;\n    do {\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    } while (uVar30 != 0x4011);\n  }\n  uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc);\n  pbVar34 = pbVar16;\n  pbVar25 = pbVar28;\n  goto LAB_000781e4;\n}\n\n" (function_definition "void share_xchannel_confirmation(byte *param_1,int param_2,undefined4 *param_3,int param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  byte bVar4;\n  char cVar5;\n  char cVar6;\n  undefined1 uVar7;\n  undefined1 uVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  int iVar11;\n  byte ****ppppbVar12;\n  int iVar13;\n  byte ****ppppbVar14;\n  undefined1 *puVar15;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  byte bVar21;\n  undefined4 uVar19;\n  undefined4 *puVar20;\n  int iVar22;\n  uint uVar23;\n  undefined1 *puVar24;\n  byte *pbVar25;\n  byte *pbVar26;\n  int iVar27;\n  uint in_t3;\n  byte *pbVar28;\n  undefined4 *puVar29;\n  uint uVar30;\n  byte *pbVar31;\n  undefined4 *unaff_s1;\n  undefined *unaff_s2;\n  byte *****pppppbVar32;\n  byte *****pppppbVar33;\n  undefined4 *unaff_s3;\n  byte *unaff_s4;\n  byte *pbVar34;\n  byte *****pppppbVar35;\n  byte *****pppppbVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  int *piVar39;\n  code *pcVar40;\n  undefined4 uVar41;\n  byte ****ppppbStack_108;\n  byte ****ppppbStack_e8;\n  byte ****ppppbStack_e4;\n  undefined4 uStack_e0;\n  byte ***pppbStack_c0;\n  int iStack_bc;\n  int iStack_b8;\n  int iStack_b4;\n  byte ****ppppbStack_b0;\n  undefined4 *puStack_ac;\n  byte *pbStack_a8;\n  byte *pbStack_a4;\n  undefined *puStack_a0;\n  int iStack_9c;\n  int iStack_98;\n  undefined4 uStack_94;\n  undefined4 uStack_80;\n  int iStack_7c;\n  undefined *puStack_78;\n  undefined4 uStack_70;\n  byte ***pppbStack_6c;\n  undefined4 *puStack_68;\n  undefined4 *puStack_64;\n  undefined *puStack_60;\n  code *pcStack_5c;\n  undefined4 *local_48;\n  undefined4 *local_44;\n  undefined4 local_34;\n  undefined1 local_30;\n  undefined1 local_2f;\n  undefined1 local_2e;\n  undefined1 local_2d;\n  int local_2c;\n  \n  pppppbVar35 = (byte *****)PTR___stack_chk_guard_000b0c9c;\n  puVar29 = *(undefined4 **)(param_2 + 0x10);\n  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;\n  if (puVar29 != (undefined4 *)0x0) {\n    unaff_s4 = param_1 + 8;\n    unaff_s3 = param_3 + 3;\n    unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;\n    do {\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    } while (puVar29 != (undefined4 *)0x0);\n  }\n  local_34 = *(undefined4 *)(param_2 + 4);\n  param_4 = param_4 - *(int *)(param_2 + 0xc);\n  iVar27 = *(int *)(*(int *)(param_1 + 0xc) + 0x14);\n  local_44 = (undefined4 *)(PTR_DAT_000b01d0 + -0x4224);\n  iVar22 = *(int *)(param_1 + 4);\n  local_30 = (undefined1)((uint)param_4 >> 0x18);\n  local_2e = (undefined1)((uint)param_4 >> 8);\n  local_48 = (undefined4 *)0x8;\n  local_2f = (undefined1)((uint)param_4 >> 0x10);\n  local_2d = (undefined1)param_4;\n  (*(code *)PTR_ssh_send_packet_from_downstream_000b0988)(iVar27,iVar22,0x5d,&local_34);\n  if ((byte ****)local_2c == *pppppbVar35) {\n    return;\n  }\n  pcVar40 = share_xchannel_failure;\n  puVar37 = PTR___stack_chk_fail_000b0c70;\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\n  puStack_78 = puVar37 + 0x40180;\n  uStack_70 = *(undefined4 *)(iVar22 + 4);\n  pbVar25 = &DAT_00000061;\n  pbVar31 = (byte *)&uStack_70;\n  pppppbVar32 = *(byte ******)(puVar37 + 0x38ccc);\n  iStack_7c = *(int *)(puVar37 + 0x38200) + -0x4248;\n  pppbStack_6c = (byte ***)*pppppbVar32;\n  uStack_80 = 4;\n  puStack_68 = puVar29;\n  puStack_64 = unaff_s1;\n  puStack_60 = unaff_s2;\n  pcStack_5c = pcVar40;\n  (**(code **)(puVar37 + 0x389b8))\n            (*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4));\n  *(undefined4 *)(iVar22 + 8) = 0;\n  iVar18 = iVar27;\n  share_dead_xchannel_respond(iVar27,iVar22);\n  if ((byte ****)pppbStack_6c == *pppppbVar32) {\n    return;\n  }\n  pcVar40 = *(code **)(puStack_78 + -0x74e0);\n  uVar41 = 0x7808c;\n  (*pcVar40)();\n  iVar11 = *(int *)(iVar18 + 0x10);\n  piVar39 = *(int **)(pcVar40 + 0x38c10);\n  puStack_a0 = (undefined *)pppppbVar35;\n  iStack_bc = *piVar39;\n  pbVar34 = pbVar31;\n  iStack_b8 = iVar22;\n  iStack_b4 = iVar27;\n  ppppbStack_b0 = (byte ****)pppppbVar32;\n  puStack_ac = unaff_s3;\n  pbStack_a8 = unaff_s4;\n  pbStack_a4 = param_1;\n  iStack_9c = param_4;\n  iStack_98 = param_2;\n  uStack_94 = uVar41;\n  if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar11 != 0) goto LAB_00078210;\n    *(undefined4 *)(iVar18 + 0x4030) = 0;\n  }\n  if (pbVar31 == (byte *)0x0) {\nLAB_000781c4:\n    *(undefined4 *)(iVar18 + 0x10) = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );\n  }\n  uVar30 = *(uint *)(iVar18 + 0x4030);\n  bVar21 = *pbVar25;\n  pbVar34 = pbVar31 + -1;\n  pbVar28 = pbVar25 + 1;\n  if (bVar21 == 10) {\nLAB_0007855c:\n    pbVar25 = pbVar28;\n    if (0x2d < uVar30) {\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }\n    uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }\n  pbVar16 = pbVar31;\n  if (uVar30 < 0x4010) {\n    uVar30 = uVar30 + 1;\n    pbVar26 = pbVar25 + (int)pbVar34;\n    pbVar34 = pbVar31;\n    param_1 = pbVar28;\n    do {\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    } while (uVar30 != 0x4011);\n  }\n  uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc);\n  pbVar34 = pbVar16;\n  pbVar25 = pbVar28;\n  goto LAB_000781e4;\n}" primitive_type (function_declarator "share_xchannel_confirmation(byte *param_1,int param_2,undefined4 *param_3,int param_4)" identifier (parameter_list "(byte *param_1,int param_2,undefined4 *param_3,int param_4)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  byte bVar4;\n  char cVar5;\n  char cVar6;\n  undefined1 uVar7;\n  undefined1 uVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  int iVar11;\n  byte ****ppppbVar12;\n  int iVar13;\n  byte ****ppppbVar14;\n  undefined1 *puVar15;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  byte bVar21;\n  undefined4 uVar19;\n  undefined4 *puVar20;\n  int iVar22;\n  uint uVar23;\n  undefined1 *puVar24;\n  byte *pbVar25;\n  byte *pbVar26;\n  int iVar27;\n  uint in_t3;\n  byte *pbVar28;\n  undefined4 *puVar29;\n  uint uVar30;\n  byte *pbVar31;\n  undefined4 *unaff_s1;\n  undefined *unaff_s2;\n  byte *****pppppbVar32;\n  byte *****pppppbVar33;\n  undefined4 *unaff_s3;\n  byte *unaff_s4;\n  byte *pbVar34;\n  byte *****pppppbVar35;\n  byte *****pppppbVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  int *piVar39;\n  code *pcVar40;\n  undefined4 uVar41;\n  byte ****ppppbStack_108;\n  byte ****ppppbStack_e8;\n  byte ****ppppbStack_e4;\n  undefined4 uStack_e0;\n  byte ***pppbStack_c0;\n  int iStack_bc;\n  int iStack_b8;\n  int iStack_b4;\n  byte ****ppppbStack_b0;\n  undefined4 *puStack_ac;\n  byte *pbStack_a8;\n  byte *pbStack_a4;\n  undefined *puStack_a0;\n  int iStack_9c;\n  int iStack_98;\n  undefined4 uStack_94;\n  undefined4 uStack_80;\n  int iStack_7c;\n  undefined *puStack_78;\n  undefined4 uStack_70;\n  byte ***pppbStack_6c;\n  undefined4 *puStack_68;\n  undefined4 *puStack_64;\n  undefined *puStack_60;\n  code *pcStack_5c;\n  undefined4 *local_48;\n  undefined4 *local_44;\n  undefined4 local_34;\n  undefined1 local_30;\n  undefined1 local_2f;\n  undefined1 local_2e;\n  undefined1 local_2d;\n  int local_2c;\n  \n  pppppbVar35 = (byte *****)PTR___stack_chk_guard_000b0c9c;\n  puVar29 = *(undefined4 **)(param_2 + 0x10);\n  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;\n  if (puVar29 != (undefined4 *)0x0) {\n    unaff_s4 = param_1 + 8;\n    unaff_s3 = param_3 + 3;\n    unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;\n    do {\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    } while (puVar29 != (undefined4 *)0x0);\n  }\n  local_34 = *(undefined4 *)(param_2 + 4);\n  param_4 = param_4 - *(int *)(param_2 + 0xc);\n  iVar27 = *(int *)(*(int *)(param_1 + 0xc) + 0x14);\n  local_44 = (undefined4 *)(PTR_DAT_000b01d0 + -0x4224);\n  iVar22 = *(int *)(param_1 + 4);\n  local_30 = (undefined1)((uint)param_4 >> 0x18);\n  local_2e = (undefined1)((uint)param_4 >> 8);\n  local_48 = (undefined4 *)0x8;\n  local_2f = (undefined1)((uint)param_4 >> 0x10);\n  local_2d = (undefined1)param_4;\n  (*(code *)PTR_ssh_send_packet_from_downstream_000b0988)(iVar27,iVar22,0x5d,&local_34);\n  if ((byte ****)local_2c == *pppppbVar35) {\n    return;\n  }\n  pcVar40 = share_xchannel_failure;\n  puVar37 = PTR___stack_chk_fail_000b0c70;\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\n  puStack_78 = puVar37 + 0x40180;\n  uStack_70 = *(undefined4 *)(iVar22 + 4);\n  pbVar25 = &DAT_00000061;\n  pbVar31 = (byte *)&uStack_70;\n  pppppbVar32 = *(byte ******)(puVar37 + 0x38ccc);\n  iStack_7c = *(int *)(puVar37 + 0x38200) + -0x4248;\n  pppbStack_6c = (byte ***)*pppppbVar32;\n  uStack_80 = 4;\n  puStack_68 = puVar29;\n  puStack_64 = unaff_s1;\n  puStack_60 = unaff_s2;\n  pcStack_5c = pcVar40;\n  (**(code **)(puVar37 + 0x389b8))\n            (*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4));\n  *(undefined4 *)(iVar22 + 8) = 0;\n  iVar18 = iVar27;\n  share_dead_xchannel_respond(iVar27,iVar22);\n  if ((byte ****)pppbStack_6c == *pppppbVar32) {\n    return;\n  }\n  pcVar40 = *(code **)(puStack_78 + -0x74e0);\n  uVar41 = 0x7808c;\n  (*pcVar40)();\n  iVar11 = *(int *)(iVar18 + 0x10);\n  piVar39 = *(int **)(pcVar40 + 0x38c10);\n  puStack_a0 = (undefined *)pppppbVar35;\n  iStack_bc = *piVar39;\n  pbVar34 = pbVar31;\n  iStack_b8 = iVar22;\n  iStack_b4 = iVar27;\n  ppppbStack_b0 = (byte ****)pppppbVar32;\n  puStack_ac = unaff_s3;\n  pbStack_a8 = unaff_s4;\n  pbStack_a4 = param_1;\n  iStack_9c = param_4;\n  iStack_98 = param_2;\n  uStack_94 = uVar41;\n  if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar11 != 0) goto LAB_00078210;\n    *(undefined4 *)(iVar18 + 0x4030) = 0;\n  }\n  if (pbVar31 == (byte *)0x0) {\nLAB_000781c4:\n    *(undefined4 *)(iVar18 + 0x10) = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );\n  }\n  uVar30 = *(uint *)(iVar18 + 0x4030);\n  bVar21 = *pbVar25;\n  pbVar34 = pbVar31 + -1;\n  pbVar28 = pbVar25 + 1;\n  if (bVar21 == 10) {\nLAB_0007855c:\n    pbVar25 = pbVar28;\n    if (0x2d < uVar30) {\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }\n    uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }\n  pbVar16 = pbVar31;\n  if (uVar30 < 0x4010) {\n    uVar30 = uVar30 + 1;\n    pbVar26 = pbVar25 + (int)pbVar34;\n    pbVar34 = pbVar31;\n    param_1 = pbVar28;\n    do {\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    } while (uVar30 != 0x4011);\n  }\n  uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc);\n  pbVar34 = pbVar16;\n  pbVar25 = pbVar28;\n  goto LAB_000781e4;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "undefined1 uVar7;" type_identifier identifier ;) (declaration "undefined1 uVar8;" type_identifier identifier ;) (declaration "undefined1 uVar9;" type_identifier identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "byte ****ppppbVar12;" type_identifier (pointer_declarator "****ppppbVar12" * (pointer_declarator "***ppppbVar12" * (pointer_declarator "**ppppbVar12" * (pointer_declarator "*ppppbVar12" * identifier)))) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte ****ppppbVar14;" type_identifier (pointer_declarator "****ppppbVar14" * (pointer_declarator "***ppppbVar14" * (pointer_declarator "**ppppbVar14" * (pointer_declarator "*ppppbVar14" * identifier)))) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "undefined1 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "byte *pbVar25;" type_identifier (pointer_declarator "*pbVar25" * identifier) ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "uint in_t3;" type_identifier identifier ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "undefined4 *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "undefined4 *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "undefined *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "byte *****pppppbVar32;" type_identifier (pointer_declarator "*****pppppbVar32" * (pointer_declarator "****pppppbVar32" * (pointer_declarator "***pppppbVar32" * (pointer_declarator "**pppppbVar32" * (pointer_declarator "*pppppbVar32" * identifier))))) ;) (declaration "byte *****pppppbVar33;" type_identifier (pointer_declarator "*****pppppbVar33" * (pointer_declarator "****pppppbVar33" * (pointer_declarator "***pppppbVar33" * (pointer_declarator "**pppppbVar33" * (pointer_declarator "*pppppbVar33" * identifier))))) ;) (declaration "undefined4 *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "byte *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "byte *pbVar34;" type_identifier (pointer_declarator "*pbVar34" * identifier) ;) (declaration "byte *****pppppbVar35;" type_identifier (pointer_declarator "*****pppppbVar35" * (pointer_declarator "****pppppbVar35" * (pointer_declarator "***pppppbVar35" * (pointer_declarator "**pppppbVar35" * (pointer_declarator "*pppppbVar35" * identifier))))) ;) (declaration "byte *****pppppbVar36;" type_identifier (pointer_declarator "*****pppppbVar36" * (pointer_declarator "****pppppbVar36" * (pointer_declarator "***pppppbVar36" * (pointer_declarator "**pppppbVar36" * (pointer_declarator "*pppppbVar36" * identifier))))) ;) (declaration "undefined *puVar37;" type_identifier (pointer_declarator "*puVar37" * identifier) ;) (declaration "code *pcVar38;" type_identifier (pointer_declarator "*pcVar38" * identifier) ;) (declaration "int *piVar39;" primitive_type (pointer_declarator "*piVar39" * identifier) ;) (declaration "code *pcVar40;" type_identifier (pointer_declarator "*pcVar40" * identifier) ;) (declaration "undefined4 uVar41;" type_identifier identifier ;) (declaration "byte ****ppppbStack_108;" type_identifier (pointer_declarator "****ppppbStack_108" * (pointer_declarator "***ppppbStack_108" * (pointer_declarator "**ppppbStack_108" * (pointer_declarator "*ppppbStack_108" * identifier)))) ;) (declaration "byte ****ppppbStack_e8;" type_identifier (pointer_declarator "****ppppbStack_e8" * (pointer_declarator "***ppppbStack_e8" * (pointer_declarator "**ppppbStack_e8" * (pointer_declarator "*ppppbStack_e8" * identifier)))) ;) (declaration "byte ****ppppbStack_e4;" type_identifier (pointer_declarator "****ppppbStack_e4" * (pointer_declarator "***ppppbStack_e4" * (pointer_declarator "**ppppbStack_e4" * (pointer_declarator "*ppppbStack_e4" * identifier)))) ;) (declaration "undefined4 uStack_e0;" type_identifier identifier ;) (declaration "byte ***pppbStack_c0;" type_identifier (pointer_declarator "***pppbStack_c0" * (pointer_declarator "**pppbStack_c0" * (pointer_declarator "*pppbStack_c0" * identifier))) ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "int iStack_b8;" primitive_type identifier ;) (declaration "int iStack_b4;" primitive_type identifier ;) (declaration "byte ****ppppbStack_b0;" type_identifier (pointer_declarator "****ppppbStack_b0" * (pointer_declarator "***ppppbStack_b0" * (pointer_declarator "**ppppbStack_b0" * (pointer_declarator "*ppppbStack_b0" * identifier)))) ;) (declaration "undefined4 *puStack_ac;" type_identifier (pointer_declarator "*puStack_ac" * identifier) ;) (declaration "byte *pbStack_a8;" type_identifier (pointer_declarator "*pbStack_a8" * identifier) ;) (declaration "byte *pbStack_a4;" type_identifier (pointer_declarator "*pbStack_a4" * identifier) ;) (declaration "undefined *puStack_a0;" type_identifier (pointer_declarator "*puStack_a0" * identifier) ;) (declaration "int iStack_9c;" primitive_type identifier ;) (declaration "int iStack_98;" primitive_type identifier ;) (declaration "undefined4 uStack_94;" type_identifier identifier ;) (declaration "undefined4 uStack_80;" type_identifier identifier ;) (declaration "int iStack_7c;" primitive_type identifier ;) (declaration "undefined *puStack_78;" type_identifier (pointer_declarator "*puStack_78" * identifier) ;) (declaration "undefined4 uStack_70;" type_identifier identifier ;) (declaration "byte ***pppbStack_6c;" type_identifier (pointer_declarator "***pppbStack_6c" * (pointer_declarator "**pppbStack_6c" * (pointer_declarator "*pppbStack_6c" * identifier))) ;) (declaration "undefined4 *puStack_68;" type_identifier (pointer_declarator "*puStack_68" * identifier) ;) (declaration "undefined4 *puStack_64;" type_identifier (pointer_declarator "*puStack_64" * identifier) ;) (declaration "undefined *puStack_60;" type_identifier (pointer_declarator "*puStack_60" * identifier) ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "undefined4 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined4 *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined1 local_30;" type_identifier identifier ;) (declaration "undefined1 local_2f;" type_identifier identifier ;) (declaration "undefined1 local_2e;" type_identifier identifier ;) (declaration "undefined1 local_2d;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "pppppbVar35 = (byte *****)PTR___stack_chk_guard_000b0c9c;" (assignment_expression "pppppbVar35 = (byte *****)PTR___stack_chk_guard_000b0c9c" identifier = (cast_expression "(byte *****)PTR___stack_chk_guard_000b0c9c" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (expression_statement "puVar29 = *(undefined4 **)(param_2 + 0x10);" (assignment_expression "puVar29 = *(undefined4 **)(param_2 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(param_2 + 0x10)" * (cast_expression "(undefined4 **)(param_2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000b0c9c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b0c9c" * (cast_expression "(int *)PTR___stack_chk_guard_000b0c9c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (puVar29 != (undefined4 *)0x0) {\n    unaff_s4 = param_1 + 8;\n    unaff_s3 = param_3 + 3;\n    unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;\n    do {\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    } while (puVar29 != (undefined4 *)0x0);\n  }" if (parenthesized_expression "(puVar29 != (undefined4 *)0x0)" ( (binary_expression "puVar29 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    unaff_s4 = param_1 + 8;\n    unaff_s3 = param_3 + 3;\n    unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;\n    do {\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    } while (puVar29 != (undefined4 *)0x0);\n  }" { (expression_statement "unaff_s4 = param_1 + 8;" (assignment_expression "unaff_s4 = param_1 + 8" identifier = (binary_expression "param_1 + 8" identifier + number_literal)) ;) (expression_statement "unaff_s3 = param_3 + 3;" (assignment_expression "unaff_s3 = param_3 + 3" identifier = (binary_expression "param_3 + 3" identifier + number_literal)) ;) (expression_statement "unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;" (assignment_expression "unaff_s2 = PTR_LAB_000b08e8 + 0x68e4" identifier = (binary_expression "PTR_LAB_000b08e8 + 0x68e4" identifier + number_literal)) ;) (do_statement "do {\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    } while (puVar29 != (undefined4 *)0x0);" do (compound_statement "{\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    }" { (expression_statement "iVar27 = puVar29[3];" (assignment_expression "iVar27 = puVar29[3]" identifier = (subscript_expression "puVar29[3]" identifier [ number_literal ])) ;) (expression_statement "puVar24 = (undefined1 *)puVar29[2];" (assignment_expression "puVar24 = (undefined1 *)puVar29[2]" identifier = (cast_expression "(undefined1 *)puVar29[2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar29[2]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(param_2 + 0x10) = *puVar29;" (assignment_expression "*(undefined4 *)(param_2 + 0x10) = *puVar29" (pointer_expression "*(undefined4 *)(param_2 + 0x10)" * (cast_expression "(undefined4 *)(param_2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) = (pointer_expression "*puVar29" * identifier)) ;) (if_statement "if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }" if (parenthesized_expression "(3 < iVar27)" ( (binary_expression "3 < iVar27" number_literal < identifier) )) (compound_statement "{\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }" { (expression_statement "*puVar24 = *(undefined1 *)param_3;" (assignment_expression "*puVar24 = *(undefined1 *)param_3" (pointer_expression "*puVar24" * identifier) = (pointer_expression "*(undefined1 *)param_3" * (cast_expression "(undefined1 *)param_3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;" (assignment_expression "*(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3" (pointer_expression "*(char *)(puVar29[2] + 1)" * (cast_expression "(char *)(puVar29[2] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29[2] + 1)" ( (binary_expression "puVar29[2] + 1" (subscript_expression "puVar29[2]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*(undefined2 *)param_3" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)param_3" * (cast_expression "(undefined2 *)param_3" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "*(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);" (assignment_expression "*(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8)" (pointer_expression "*(char *)(puVar29[2] + 2)" * (cast_expression "(char *)(puVar29[2] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29[2] + 2)" ( (binary_expression "puVar29[2] + 2" (subscript_expression "puVar29[2]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((uint)*param_3 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)*param_3 >> 8)" ( (binary_expression "(uint)*param_3 >> 8" (binary_expression "(uint)*param_3" (parenthesized_expression "(uint)" ( identifier )) * identifier) >> number_literal) )))) ;) (expression_statement "*(char *)(puVar29[2] + 3) = (char)*param_3;" (assignment_expression "*(char *)(puVar29[2] + 3) = (char)*param_3" (pointer_expression "*(char *)(puVar29[2] + 3)" * (cast_expression "(char *)(puVar29[2] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29[2] + 3)" ( (binary_expression "puVar29[2] + 3" (subscript_expression "puVar29[2]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*param_3" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*param_3" * identifier))) ;) (expression_statement "puVar24 = (undefined1 *)puVar29[2];" (assignment_expression "puVar24 = (undefined1 *)puVar29[2]" identifier = (cast_expression "(undefined1 *)puVar29[2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar29[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar27 = puVar29[3];" (assignment_expression "iVar27 = puVar29[3]" identifier = (subscript_expression "puVar29[3]" identifier [ number_literal ])) ;) })) (expression_statement "local_48 = param_3;" (assignment_expression "local_48 = param_3" identifier = identifier) ;) (expression_statement "local_44 = unaff_s3;" (assignment_expression "local_44 = unaff_s3" identifier = identifier) ;) (expression_statement "FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);" (call_expression "FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27)" identifier (argument_list "(unaff_s4,puVar29[1],puVar24,iVar27)" ( identifier , (subscript_expression "puVar29[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_safefree_000b01b0)(puVar29);" (call_expression "(*(code *)PTR_safefree_000b01b0)(puVar29)" (parenthesized_expression "(*(code *)PTR_safefree_000b01b0)" ( (pointer_expression "*(code *)PTR_safefree_000b01b0" * (cast_expression "(code *)PTR_safefree_000b01b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar29)" ( identifier ))) ;) (expression_statement "puVar29 = *(undefined4 **)(param_2 + 0x10);" (assignment_expression "puVar29 = *(undefined4 **)(param_2 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(param_2 + 0x10)" * (cast_expression "(undefined4 **)(param_2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "unaff_s1 = param_3;" (assignment_expression "unaff_s1 = param_3" identifier = identifier) ;) }) while (parenthesized_expression "(puVar29 != (undefined4 *)0x0)" ( (binary_expression "puVar29 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "local_34 = *(undefined4 *)(param_2 + 4);" (assignment_expression "local_34 = *(undefined4 *)(param_2 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 4)" * (cast_expression "(undefined4 *)(param_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) ;) (expression_statement "param_4 = param_4 - *(int *)(param_2 + 0xc);" (assignment_expression "param_4 = param_4 - *(int *)(param_2 + 0xc)" identifier = (binary_expression "param_4 - *(int *)(param_2 + 0xc)" identifier - (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "iVar27 = *(int *)(*(int *)(param_1 + 0xc) + 0x14);" (assignment_expression "iVar27 = *(int *)(*(int *)(param_1 + 0xc) + 0x14)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0xc) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0xc) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xc) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0xc) + 0x14" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_44 = (undefined4 *)(PTR_DAT_000b01d0 + -0x4224);" (assignment_expression "local_44 = (undefined4 *)(PTR_DAT_000b01d0 + -0x4224)" identifier = (cast_expression "(undefined4 *)(PTR_DAT_000b01d0 + -0x4224)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b01d0 + -0x4224)" ( (binary_expression "PTR_DAT_000b01d0 + -0x4224" identifier + number_literal) )))) ;) (expression_statement "iVar22 = *(int *)(param_1 + 4);" (assignment_expression "iVar22 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_30 = (undefined1)((uint)param_4 >> 0x18);" (assignment_expression "local_30 = (undefined1)((uint)param_4 >> 0x18)" identifier = (call_expression "(undefined1)((uint)param_4 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)param_4 >> 0x18)" ( (binary_expression "(uint)param_4 >> 0x18" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_2e = (undefined1)((uint)param_4 >> 8);" (assignment_expression "local_2e = (undefined1)((uint)param_4 >> 8)" identifier = (call_expression "(undefined1)((uint)param_4 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)param_4 >> 8)" ( (binary_expression "(uint)param_4 >> 8" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_48 = (undefined4 *)0x8;" (assignment_expression "local_48 = (undefined4 *)0x8" identifier = (cast_expression "(undefined4 *)0x8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2f = (undefined1)((uint)param_4 >> 0x10);" (assignment_expression "local_2f = (undefined1)((uint)param_4 >> 0x10)" identifier = (call_expression "(undefined1)((uint)param_4 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)param_4 >> 0x10)" ( (binary_expression "(uint)param_4 >> 0x10" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_2d = (undefined1)param_4;" (assignment_expression "local_2d = (undefined1)param_4" identifier = (cast_expression "(undefined1)param_4" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "(*(code *)PTR_ssh_send_packet_from_downstream_000b0988)(iVar27,iVar22,0x5d,&local_34);" (call_expression "(*(code *)PTR_ssh_send_packet_from_downstream_000b0988)(iVar27,iVar22,0x5d,&local_34)" (parenthesized_expression "(*(code *)PTR_ssh_send_packet_from_downstream_000b0988)" ( (pointer_expression "*(code *)PTR_ssh_send_packet_from_downstream_000b0988" * (cast_expression "(code *)PTR_ssh_send_packet_from_downstream_000b0988" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar27,iVar22,0x5d,&local_34)" ( identifier , identifier , number_literal , (pointer_expression "&local_34" & identifier) ))) ;) (if_statement "if ((byte ****)local_2c == *pppppbVar35) {\n    return;\n  }" if (parenthesized_expression "((byte ****)local_2c == *pppppbVar35)" ( (binary_expression "(byte ****)local_2c == *pppppbVar35" (cast_expression "(byte ****)local_2c" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) == (pointer_expression "*pppppbVar35" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar40 = share_xchannel_failure;" (assignment_expression "pcVar40 = share_xchannel_failure" identifier = identifier) ;) (expression_statement "puVar37 = PTR___stack_chk_fail_000b0c70;" (assignment_expression "puVar37 = PTR___stack_chk_fail_000b0c70" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b0c70)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b0c70)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b0c70)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b0c70" * (cast_expression "(code *)PTR___stack_chk_fail_000b0c70" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_78 = puVar37 + 0x40180;" (assignment_expression "puStack_78 = puVar37 + 0x40180" identifier = (binary_expression "puVar37 + 0x40180" identifier + number_literal)) ;) (expression_statement "uStack_70 = *(undefined4 *)(iVar22 + 4);" (assignment_expression "uStack_70 = *(undefined4 *)(iVar22 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar22 + 4)" * (cast_expression "(undefined4 *)(iVar22 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 4)" ( (binary_expression "iVar22 + 4" identifier + number_literal) ))))) ;) (expression_statement "pbVar25 = &DAT_00000061;" (assignment_expression "pbVar25 = &DAT_00000061" identifier = (pointer_expression "&DAT_00000061" & identifier)) ;) (expression_statement "pbVar31 = (byte *)&uStack_70;" (assignment_expression "pbVar31 = (byte *)&uStack_70" identifier = (cast_expression "(byte *)&uStack_70" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_70" & identifier))) ;) (expression_statement "pppppbVar32 = *(byte ******)(puVar37 + 0x38ccc);" (assignment_expression "pppppbVar32 = *(byte ******)(puVar37 + 0x38ccc)" identifier = (pointer_expression "*(byte ******)(puVar37 + 0x38ccc)" * (cast_expression "(byte ******)(puVar37 + 0x38ccc)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar37 + 0x38ccc)" ( (binary_expression "puVar37 + 0x38ccc" identifier + number_literal) ))))) ;) (expression_statement "iStack_7c = *(int *)(puVar37 + 0x38200) + -0x4248;" (assignment_expression "iStack_7c = *(int *)(puVar37 + 0x38200) + -0x4248" identifier = (binary_expression "*(int *)(puVar37 + 0x38200) + -0x4248" (pointer_expression "*(int *)(puVar37 + 0x38200)" * (cast_expression "(int *)(puVar37 + 0x38200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x38200)" ( (binary_expression "puVar37 + 0x38200" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pppbStack_6c = (byte ***)*pppppbVar32;" (assignment_expression "pppbStack_6c = (byte ***)*pppppbVar32" identifier = (cast_expression "(byte ***)*pppppbVar32" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "*pppppbVar32" * identifier))) ;) (expression_statement "uStack_80 = 4;" (assignment_expression "uStack_80 = 4" identifier = number_literal) ;) (expression_statement "puStack_68 = puVar29;" (assignment_expression "puStack_68 = puVar29" identifier = identifier) ;) (expression_statement "puStack_64 = unaff_s1;" (assignment_expression "puStack_64 = unaff_s1" identifier = identifier) ;) (expression_statement "puStack_60 = unaff_s2;" (assignment_expression "puStack_60 = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar40;" (assignment_expression "pcStack_5c = pcVar40" identifier = identifier) ;) (expression_statement "(**(code **)(puVar37 + 0x389b8))\n            (*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4));" (call_expression "(**(code **)(puVar37 + 0x389b8))\n            (*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4))" (parenthesized_expression "(**(code **)(puVar37 + 0x389b8))" ( (pointer_expression "**(code **)(puVar37 + 0x389b8)" * (pointer_expression "*(code **)(puVar37 + 0x389b8)" * (cast_expression "(code **)(puVar37 + 0x389b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x389b8)" ( (binary_expression "puVar37 + 0x389b8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4))" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar27 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar27 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar27 + 0xc)" * (cast_expression "(int *)(iVar27 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0xc)" ( (binary_expression "iVar27 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar27 + 4)" * (cast_expression "(undefined4 *)(iVar27 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 4)" ( (binary_expression "iVar27 + 4" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 8)" * (cast_expression "(undefined4 *)(iVar22 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 8)" ( (binary_expression "iVar22 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar18 = iVar27;" (assignment_expression "iVar18 = iVar27" identifier = identifier) ;) (expression_statement "share_dead_xchannel_respond(iVar27,iVar22);" (call_expression "share_dead_xchannel_respond(iVar27,iVar22)" identifier (argument_list "(iVar27,iVar22)" ( identifier , identifier ))) ;) (if_statement "if ((byte ****)pppbStack_6c == *pppppbVar32) {\n    return;\n  }" if (parenthesized_expression "((byte ****)pppbStack_6c == *pppppbVar32)" ( (binary_expression "(byte ****)pppbStack_6c == *pppppbVar32" (cast_expression "(byte ****)pppbStack_6c" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) == (pointer_expression "*pppppbVar32" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar40 = *(code **)(puStack_78 + -0x74e0);" (assignment_expression "pcVar40 = *(code **)(puStack_78 + -0x74e0)" identifier = (pointer_expression "*(code **)(puStack_78 + -0x74e0)" * (cast_expression "(code **)(puStack_78 + -0x74e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_78 + -0x74e0)" ( (binary_expression "puStack_78 + -0x74e0" identifier + number_literal) ))))) ;) (expression_statement "uVar41 = 0x7808c;" (assignment_expression "uVar41 = 0x7808c" identifier = number_literal) ;) (expression_statement "(*pcVar40)();" (call_expression "(*pcVar40)()" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar11 = *(int *)(iVar18 + 0x10);" (assignment_expression "iVar11 = *(int *)(iVar18 + 0x10)" identifier = (pointer_expression "*(int *)(iVar18 + 0x10)" * (cast_expression "(int *)(iVar18 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "piVar39 = *(int **)(pcVar40 + 0x38c10);" (assignment_expression "piVar39 = *(int **)(pcVar40 + 0x38c10)" identifier = (pointer_expression "*(int **)(pcVar40 + 0x38c10)" * (cast_expression "(int **)(pcVar40 + 0x38c10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38c10)" ( (binary_expression "pcVar40 + 0x38c10" identifier + number_literal) ))))) ;) (expression_statement "puStack_a0 = (undefined *)pppppbVar35;" (assignment_expression "puStack_a0 = (undefined *)pppppbVar35" identifier = (cast_expression "(undefined *)pppppbVar35" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iStack_bc = *piVar39;" (assignment_expression "iStack_bc = *piVar39" identifier = (pointer_expression "*piVar39" * identifier)) ;) (expression_statement "pbVar34 = pbVar31;" (assignment_expression "pbVar34 = pbVar31" identifier = identifier) ;) (expression_statement "iStack_b8 = iVar22;" (assignment_expression "iStack_b8 = iVar22" identifier = identifier) ;) (expression_statement "iStack_b4 = iVar27;" (assignment_expression "iStack_b4 = iVar27" identifier = identifier) ;) (expression_statement "ppppbStack_b0 = (byte ****)pppppbVar32;" (assignment_expression "ppppbStack_b0 = (byte ****)pppppbVar32" identifier = (cast_expression "(byte ****)pppppbVar32" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "puStack_ac = unaff_s3;" (assignment_expression "puStack_ac = unaff_s3" identifier = identifier) ;) (expression_statement "pbStack_a8 = unaff_s4;" (assignment_expression "pbStack_a8 = unaff_s4" identifier = identifier) ;) (expression_statement "pbStack_a4 = param_1;" (assignment_expression "pbStack_a4 = param_1" identifier = identifier) ;) (expression_statement "iStack_9c = param_4;" (assignment_expression "iStack_9c = param_4" identifier = identifier) ;) (expression_statement "iStack_98 = param_2;" (assignment_expression "iStack_98 = param_2" identifier = identifier) ;) (expression_statement "uStack_94 = uVar41;" (assignment_expression "uStack_94 = uVar41" identifier = identifier) ;) (if_statement "if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar11 != 0) goto LAB_00078210;\n    *(undefined4 *)(iVar18 + 0x4030) = 0;\n  }" if (parenthesized_expression "(iVar11 != 0x709)" ( (binary_expression "iVar11 != 0x709" identifier != number_literal) )) (compound_statement "{\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar11 != 0) goto LAB_00078210;\n    *(undefined4 *)(iVar18 + 0x4030) = 0;\n  }" { (if_statement "if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }" if (parenthesized_expression "(0x709 < iVar11)" ( (binary_expression "0x709 < iVar11" number_literal < identifier) )) (compound_statement "{\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }" { (if_statement "if (iVar11 == 0x72e) goto LAB_000784dc;" if (parenthesized_expression "(iVar11 == 0x72e)" ( (binary_expression "iVar11 == 0x72e" identifier == number_literal) )) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;)) (if_statement "if (iVar11 != 0x73b) goto LAB_00078210;" if (parenthesized_expression "(iVar11 != 0x73b)" ( (binary_expression "iVar11 != 0x73b" identifier != number_literal) )) (goto_statement "goto LAB_00078210;" goto statement_identifier ;)) (goto_statement "goto LAB_00078104;" goto statement_identifier ;) })) (if_statement "if (iVar11 != 0) goto LAB_00078210;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00078210;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (pbVar31 == (byte *)0x0) {\nLAB_000781c4:\n    *(undefined4 *)(iVar18 + 0x10) = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );\n  }" if (parenthesized_expression "(pbVar31 == (byte *)0x0)" ( (binary_expression "pbVar31 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000781c4:\n    *(undefined4 *)(iVar18 + 0x10) = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );\n  }" { (labeled_statement "LAB_000781c4:\n    *(undefined4 *)(iVar18 + 0x10) = 0x709;" statement_identifier : (expression_statement "*(undefined4 *)(iVar18 + 0x10) = 0x709;" (assignment_expression "*(undefined4 *)(iVar18 + 0x10) = 0x709" (pointer_expression "*(undefined4 *)(iVar18 + 0x10)" * (cast_expression "(undefined4 *)(iVar18 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) )))) = number_literal) ;)) (labeled_statement "LAB_00078214:\n    do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );" statement_identifier : (do_statement "do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );" do (compound_statement "{\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    }" { (if_statement "if (iStack_bc == *piVar39) {\n        return;\n      }" if (parenthesized_expression "(iStack_bc == *piVar39)" ( (binary_expression "iStack_bc == *piVar39" identifier == (pointer_expression "*piVar39" * identifier)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcVar40 + 0x38be4))();" (call_expression "(**(code **)(pcVar40 + 0x38be4))()" (parenthesized_expression "(**(code **)(pcVar40 + 0x38be4))" ( (pointer_expression "**(code **)(pcVar40 + 0x38be4)" * (pointer_expression "*(code **)(pcVar40 + 0x38be4)" * (cast_expression "(code **)(pcVar40 + 0x38be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38be4)" ( (binary_expression "pcVar40 + 0x38be4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pbVar25 = param_1;" (assignment_expression "pbVar25 = param_1" identifier = identifier) ;) (labeled_statement "LAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;" statement_identifier : (expression_statement "pppbStack_c0 = *ppppbStack_108;" (assignment_expression "pppbStack_c0 = *ppppbStack_108" identifier = (pointer_expression "*ppppbStack_108" * identifier)) ;)) (expression_statement "FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);" (call_expression "FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc)" identifier (argument_list "(iVar18 + 8,100,&pppbStack_c0,4,0,0xc)" ( (binary_expression "iVar18 + 8" identifier + number_literal) , number_literal , (pointer_expression "&pppbStack_c0" & identifier) , number_literal , number_literal , number_literal ))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(pppppbVar35);" (call_expression "(**(code **)(pcVar40 + 0x38124))(pppppbVar35)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(pppppbVar35)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;" statement_identifier : (expression_statement "pbVar31 = pbVar25 + (int)pbVar34;" (assignment_expression "pbVar31 = pbVar25 + (int)pbVar34" identifier = (binary_expression "pbVar25 + (int)pbVar34" identifier + (cast_expression "(int)pbVar34" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "param_1 = pbVar25;" (assignment_expression "param_1 = pbVar25" identifier = identifier) ;) (do_statement "do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);" do (compound_statement "{\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      }" { (expression_statement "pbVar34 = pbVar31 + (-1 - (int)param_1);" (assignment_expression "pbVar34 = pbVar31 + (-1 - (int)param_1)" identifier = (binary_expression "pbVar31 + (-1 - (int)param_1)" identifier + (parenthesized_expression "(-1 - (int)param_1)" ( (binary_expression "-1 - (int)param_1" number_literal - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }" if (parenthesized_expression "(param_1 == pbVar31)" ( (binary_expression "param_1 == pbVar31" identifier == identifier) )) (compound_statement "{\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }" { (expression_statement "*(undefined4 *)(iVar18 + 0x10) = 0x72e;" (assignment_expression "*(undefined4 *)(iVar18 + 0x10) = 0x72e" (pointer_expression "*(undefined4 *)(iVar18 + 0x10)" * (cast_expression "(undefined4 *)(iVar18 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00078214;" goto statement_identifier ;) })) (expression_statement "iVar27 = *(int *)(iVar18 + 0x4030);" (assignment_expression "iVar27 = *(int *)(iVar18 + 0x4030)" identifier = (pointer_expression "*(int *)(iVar18 + 0x4030)" * (cast_expression "(int *)(iVar18 + 0x4030)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) ))))) ;) (expression_statement "pbVar25 = param_1 + 1;" (assignment_expression "pbVar25 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "iVar22 = iVar27 + 1;" (assignment_expression "iVar22 = iVar27 + 1" identifier = (binary_expression "iVar27 + 1" identifier + number_literal)) ;) (expression_statement "bVar21 = *param_1;" (assignment_expression "bVar21 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "in_t3 = (uint)bVar21;" (assignment_expression "in_t3 = (uint)bVar21" identifier = (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(int *)(iVar18 + 0x4030) = iVar22;" (assignment_expression "*(int *)(iVar18 + 0x4030) = iVar22" (pointer_expression "*(int *)(iVar18 + 0x4030)" * (cast_expression "(int *)(iVar18 + 0x4030)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(iVar18 + iVar27 + 0x20) = bVar21;" (assignment_expression "*(byte *)(iVar18 + iVar27 + 0x20) = bVar21" (pointer_expression "*(byte *)(iVar18 + iVar27 + 0x20)" * (cast_expression "(byte *)(iVar18 + iVar27 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + iVar27 + 0x20)" ( (binary_expression "iVar18 + iVar27 + 0x20" (binary_expression "iVar18 + iVar27" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "param_1 = pbVar25;" (assignment_expression "param_1 = pbVar25" identifier = identifier) ;) }) while (parenthesized_expression "(iVar22 < 4)" ( (binary_expression "iVar22 < 4" identifier < number_literal) )) ;) (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38248))" ( (pointer_expression "**(code **)(pcVar40 + 0x38248)" * (pointer_expression "*(code **)(pcVar40 + 0x38248)" * (cast_expression "(code **)(pcVar40 + 0x38248)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38248)" ( (binary_expression "pcVar40 + 0x38248" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar18 + 0x20) + 4)" ( (binary_expression "*(int *)(iVar18 + 0x20) + 4" (pointer_expression "*(int *)(iVar18 + 0x20)" * (cast_expression "(int *)(iVar18 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*(int *)(iVar18 + 0x1c) = iVar27;" (assignment_expression "*(int *)(iVar18 + 0x1c) = iVar27" (pointer_expression "*(int *)(iVar18 + 0x1c)" * (cast_expression "(int *)(iVar18 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x1c)" ( (binary_expression "iVar18 + 0x1c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }" if (parenthesized_expression "(iVar27 - 5U < 0x400c)" ( (binary_expression "iVar27 - 5U < 0x400c" (binary_expression "iVar27 - 5U" identifier - number_literal) < number_literal) )) (compound_statement "{\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }" { (expression_statement "pppppbVar35 = *(byte ******)(iVar18 + 0x4030);" (assignment_expression "pppppbVar35 = *(byte ******)(iVar18 + 0x4030)" identifier = (pointer_expression "*(byte ******)(iVar18 + 0x4030)" * (cast_expression "(byte ******)(iVar18 + 0x4030)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) ))))) ;) (while_statement "while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }" while (parenthesized_expression "(param_1 = pbVar25, (int)pppppbVar35 < iVar27)" ( (comma_expression "param_1 = pbVar25, (int)pppppbVar35 < iVar27" (assignment_expression "param_1 = pbVar25" identifier = identifier) , (binary_expression "(int)pppppbVar35 < iVar27" (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier) < identifier)) )) (compound_statement "{\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }" { (labeled_statement "LAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }" statement_identifier : (if_statement "if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }" if (parenthesized_expression "(pbVar34 == (byte *)0x0)" ( (binary_expression "pbVar34 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }" { (expression_statement "*(undefined4 *)(iVar18 + 0x10) = 0x73b;" (assignment_expression "*(undefined4 *)(iVar18 + 0x10) = 0x73b" (pointer_expression "*(undefined4 *)(iVar18 + 0x10)" * (cast_expression "(undefined4 *)(iVar18 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pbVar34 = (byte *)0x0;" (assignment_expression "pbVar34 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00078214;" goto statement_identifier ;) }))) (expression_statement "iVar27 = *(int *)(iVar18 + 0x4030);" (assignment_expression "iVar27 = *(int *)(iVar18 + 0x4030)" identifier = (pointer_expression "*(int *)(iVar18 + 0x4030)" * (cast_expression "(int *)(iVar18 + 0x4030)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) ))))) ;) (expression_statement "pbVar34 = pbVar34 + -1;" (assignment_expression "pbVar34 = pbVar34 + -1" identifier = (binary_expression "pbVar34 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar25;" (assignment_expression "bVar21 = *pbVar25" identifier = (pointer_expression "*pbVar25" * identifier)) ;) (expression_statement "pbVar25 = pbVar25 + 1;" (assignment_expression "pbVar25 = pbVar25 + 1" identifier = (binary_expression "pbVar25 + 1" identifier + number_literal)) ;) (expression_statement "pppppbVar35 = (byte *****)(iVar27 + 1);" (assignment_expression "pppppbVar35 = (byte *****)(iVar27 + 1)" identifier = (cast_expression "(byte *****)(iVar27 + 1)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(iVar27 + 1)" ( (binary_expression "iVar27 + 1" identifier + number_literal) )))) ;) (expression_statement "*(byte ******)(iVar18 + 0x4030) = pppppbVar35;" (assignment_expression "*(byte ******)(iVar18 + 0x4030) = pppppbVar35" (pointer_expression "*(byte ******)(iVar18 + 0x4030)" * (cast_expression "(byte ******)(iVar18 + 0x4030)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(iVar18 + iVar27 + 0x20) = bVar21;" (assignment_expression "*(byte *)(iVar18 + iVar27 + 0x20) = bVar21" (pointer_expression "*(byte *)(iVar18 + iVar27 + 0x20)" * (cast_expression "(byte *)(iVar18 + iVar27 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + iVar27 + 0x20)" ( (binary_expression "iVar18 + iVar27 + 0x20" (binary_expression "iVar18 + iVar27" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar27 = *(int *)(iVar18 + 0x1c);" (assignment_expression "iVar27 = *(int *)(iVar18 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar18 + 0x1c)" * (cast_expression "(int *)(iVar18 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x1c)" ( (binary_expression "iVar18 + 0x1c" identifier + number_literal) ))))) ;) })) (expression_statement "bVar21 = *(byte *)(iVar18 + 0x24);" (assignment_expression "bVar21 = *(byte *)(iVar18 + 0x24)" identifier = (pointer_expression "*(byte *)(iVar18 + 0x24)" * (cast_expression "(byte *)(iVar18 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x24)" ( (binary_expression "iVar18 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "iVar27 = iVar18 + 0x25;" (assignment_expression "iVar27 = iVar18 + 0x25" identifier = (binary_expression "iVar18 + 0x25" identifier + number_literal)) ;) (expression_statement "pbVar31 = (byte *)((int)pppppbVar35 + -5);" (assignment_expression "pbVar31 = (byte *)((int)pppppbVar35 + -5)" identifier = (cast_expression "(byte *)((int)pppppbVar35 + -5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar35 + -5)" ( (binary_expression "(int)pppppbVar35 + -5" (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }" if (parenthesized_expression "(bVar21 != 0x5a)" ( (binary_expression "bVar21 != 0x5a" identifier != number_literal) )) (compound_statement "{\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }" { (if_statement "if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }" if (parenthesized_expression "(bVar21 < 0x5b)" ( (binary_expression "bVar21 < 0x5b" identifier < number_literal) )) (compound_statement "{\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }" { (if_statement "if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }" if (parenthesized_expression "(bVar21 != 2)" ( (binary_expression "bVar21 != 2" identifier != number_literal) )) (compound_statement "{\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }" { (if_statement "if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }" if (parenthesized_expression "(2 < bVar21)" ( (binary_expression "2 < bVar21" number_literal < identifier) )) (compound_statement "{\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }" { (if_statement "if (bVar21 == 4) goto LAB_00078844;" if (parenthesized_expression "(bVar21 == 4)" ( (binary_expression "bVar21 == 4" identifier == number_literal) )) (goto_statement "goto LAB_00078844;" goto statement_identifier ;)) (if_statement "if (bVar21 != 0x50) goto LAB_0007878c;" if (parenthesized_expression "(bVar21 != 0x50)" ( (binary_expression "bVar21 != 0x50" identifier != number_literal) )) (goto_statement "goto LAB_0007878c;" goto statement_identifier ;)) (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) ))))) ;) (expression_statement "pppppbVar33 = pppppbVar32;" (assignment_expression "pppppbVar33 = pppppbVar32" identifier = identifier) ;) (if_statement "if ((int)pbVar31 < 4) goto LAB_0007882c;" if (parenthesized_expression "((int)pbVar31 < 4)" ( (binary_expression "(int)pbVar31 < 4" (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0007882c;" goto statement_identifier ;)) (expression_statement "pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);" (assignment_expression "pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0)" identifier = (cast_expression "(byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(*(int *)(pcVar40 + 0x3885c) + 0x6af0)" ( (binary_expression "*(int *)(pcVar40 + 0x3885c) + 0x6af0" (pointer_expression "*(int *)(pcVar40 + 0x3885c)" * (cast_expression "(int *)(pcVar40 + 0x3885c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x3885c)" ( (binary_expression "pcVar40 + 0x3885c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);" (assignment_expression "iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0)" identifier = (call_expression "FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0)" identifier (argument_list "(iVar27,pbVar31,&ppppbStack_e8,0)" ( identifier , identifier , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal )))) ;) (expression_statement "ppppbVar12 = ppppbStack_e8;" (assignment_expression "ppppbVar12 = ppppbStack_e8" identifier = identifier) ;) (if_statement "if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;" if (parenthesized_expression "((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))" ( (binary_expression "(iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0)" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "((byte *****)ppppbStack_e8 == (byte *****)0x0)" ( (binary_expression "(byte *****)ppppbStack_e8 == (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ))) )) (goto_statement "goto LAB_00078828;" goto statement_identifier ;)) (expression_statement "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);" (assignment_expression "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38c4c))" ( (pointer_expression "**(code **)(pcVar40 + 0x38c4c)" * (pointer_expression "*(code **)(pcVar40 + 0x38c4c)" * (cast_expression "(code **)(pcVar40 + 0x38c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38c4c)" ( (binary_expression "pcVar40 + 0x38c4c" identifier + number_literal) ))))) )) (argument_list "(ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860)" ( identifier , (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x4860" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" * (cast_expression "(int *)(pcVar40 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x380fc)" ( (binary_expression "pcVar40 + 0x380fc" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }" { (expression_statement "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);" (assignment_expression "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38c4c))" ( (pointer_expression "**(code **)(pcVar40 + 0x38c4c)" * (pointer_expression "*(code **)(pcVar40 + 0x38c4c)" * (cast_expression "(code **)(pcVar40 + 0x38c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38c4c)" ( (binary_expression "pcVar40 + 0x38c4c" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc)" ( identifier , (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x47cc" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" * (cast_expression "(int *)(pcVar40 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x380fc)" ( (binary_expression "pcVar40 + 0x380fc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38124);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38124)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) ;) (expression_statement "pppppbVar32 = pppppbVar33;" (assignment_expression "pppppbVar32 = pppppbVar33" identifier = identifier) ;) (if_statement "if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }" { (expression_statement "(*pcVar38)(ppppbVar12);" (call_expression "(*pcVar38)(ppppbVar12)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(ppppbVar12)" ( identifier ))) ;) (expression_statement "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);" (assignment_expression "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" identifier = (call_expression "FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" identifier (argument_list "(iVar27,pbVar31,0,&ppppbStack_e8)" ( identifier , identifier , number_literal , (pointer_expression "&ppppbStack_e8" & identifier) )))) ;) (expression_statement "pppppbVar36 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar36 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }" if (parenthesized_expression "(((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31))" ( (binary_expression "((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)" (parenthesized_expression "((iVar22 != 0) && (-1 < (int)ppppbStack_e8))" ( (binary_expression "(iVar22 != 0) && (-1 < (int)ppppbStack_e8)" (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) && (parenthesized_expression "(-1 < (int)ppppbStack_e8)" ( (binary_expression "-1 < (int)ppppbStack_e8" number_literal < (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "(pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)" ( (comma_expression "pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31" (assignment_expression "pbVar28 = (byte *)((int)ppppbStack_e8 + 1)" identifier = (cast_expression "(byte *)((int)ppppbStack_e8 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppbStack_e8 + 1)" ( (binary_expression "(int)ppppbStack_e8 + 1" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "(int)ppppbStack_e8 < (int)pbVar31" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }" { (expression_statement "ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);" (assignment_expression "ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27)" identifier = (cast_expression "(byte ****)((int)ppppbStack_e8 + iVar27)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbStack_e8 + iVar27)" ( (binary_expression "(int)ppppbStack_e8 + iVar27" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar11 = (int)pbVar31 - (int)pbVar28;" (assignment_expression "iVar11 = (int)pbVar31 - (int)pbVar28" identifier = (binary_expression "(int)pbVar31 - (int)pbVar28" (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "bVar21 = *(byte *)ppppbStack_108;" (assignment_expression "bVar21 = *(byte *)ppppbStack_108" identifier = (pointer_expression "*(byte *)ppppbStack_108" * (cast_expression "(byte *)ppppbStack_108" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }" if (parenthesized_expression "((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0))" ( (binary_expression "(iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)" (parenthesized_expression "(iVar11 < 4)" ( (binary_expression "iVar11 < 4" identifier < number_literal) )) || (parenthesized_expression "(iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)" ( (comma_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0" (assignment_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" identifier = (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" identifier (argument_list "(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" ( (binary_expression "pbVar28 + iVar27" identifier + identifier) , identifier , number_literal , (pointer_expression "&ppppbStack_e8" & identifier) )))) , (binary_expression "iVar22 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }" { (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) ))))) ;) (if_statement "if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }" if (parenthesized_expression "((int)pppppbVar36 < (int)(pppppbVar35 + -2))" ( (binary_expression "(int)pppppbVar36 < (int)(pppppbVar35 + -2)" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(pppppbVar35 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pppppbVar35 + -2)" ( (binary_expression "pppppbVar35 + -2" identifier + number_literal) )))) )) (compound_statement "{\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }" { (if_statement "if (iVar11 >= 4) goto LAB_000783d4;" if (parenthesized_expression "(iVar11 >= 4)" ( (binary_expression "iVar11 >= 4" identifier >= number_literal) )) (goto_statement "goto LAB_000783d4;" goto statement_identifier ;)) (labeled_statement "LAB_0007901c:\n                          uVar41 = 0x5a7;" statement_identifier : (expression_statement "uVar41 = 0x5a7;" (assignment_expression "uVar41 = 0x5a7" identifier = number_literal) ;)) (goto_statement "goto LAB_00079020;" goto statement_identifier ;) })) }) (else_clause "else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }" else (compound_statement "{\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }" { (expression_statement "pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);" (assignment_expression "pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8)" identifier = (cast_expression "(byte *****)(pbVar28 + (int)ppppbStack_e8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(pbVar28 + (int)ppppbStack_e8)" ( (binary_expression "pbVar28 + (int)ppppbStack_e8" identifier + (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) ))))) ;) (if_statement "if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }" if (parenthesized_expression "(-1 < (int)pppppbVar36)" ( (binary_expression "-1 < (int)pppppbVar36" number_literal < (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }" { (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38158);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38158)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) ;) (if_statement "if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;" if (parenthesized_expression "((int)(pppppbVar35 + -2) <= (int)pppppbVar36)" ( (binary_expression "(int)(pppppbVar35 + -2) <= (int)pppppbVar36" (cast_expression "(int)(pppppbVar35 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pppppbVar35 + -2)" ( (binary_expression "pppppbVar35 + -2" identifier + number_literal) ))) <= (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00078830;" goto statement_identifier ;)) (labeled_statement "LAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);" statement_identifier : (expression_statement "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);" (assignment_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" identifier = (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" identifier (argument_list "(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" ( (binary_expression "pbVar28 + iVar27" identifier + identifier) , identifier , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal )))) ;)) (expression_statement "pppppbVar32 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar32 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;" if (parenthesized_expression "((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0))" ( (binary_expression "(iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "(pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)" ( (comma_expression "pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0" (assignment_expression "pppppbVar33 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) , (binary_expression "(byte *****)ppppbStack_e8 == (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal))) ))) )) (goto_statement "goto LAB_0007901c;" goto statement_identifier ;)) (expression_statement "pbVar28 = (byte *)((int)pppppbVar36 + iVar27);" (assignment_expression "pbVar28 = (byte *)((int)pppppbVar36 + iVar27)" identifier = (cast_expression "(byte *)((int)pppppbVar36 + iVar27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar36 + iVar27)" ( (binary_expression "(int)pppppbVar36 + iVar27" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "bVar1 = *pbVar28;" (assignment_expression "bVar1 = *pbVar28" identifier = (pointer_expression "*pbVar28" * identifier)) ;) (expression_statement "bVar2 = pbVar28[1];" (assignment_expression "bVar2 = pbVar28[1]" identifier = (subscript_expression "pbVar28[1]" identifier [ number_literal ])) ;) (expression_statement "bVar3 = pbVar28[3];" (assignment_expression "bVar3 = pbVar28[3]" identifier = (subscript_expression "pbVar28[3]" identifier [ number_literal ])) ;) (expression_statement "bVar4 = pbVar28[2];" (assignment_expression "bVar4 = pbVar28[2]" identifier = (subscript_expression "pbVar28[2]" identifier [ number_literal ])) ;) (expression_statement "ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;" (assignment_expression "ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)" identifier = (cast_expression "(byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38164))" ( (pointer_expression "**(code **)(pcVar40 + 0x38164)" * (pointer_expression "*(code **)(pcVar40 + 0x38164)" * (cast_expression "(code **)(pcVar40 + 0x38164)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38164)" ( (binary_expression "pcVar40 + 0x38164" identifier + number_literal) ))))) )) (argument_list "(ppppbStack_e8)" ( identifier ))))) ;) (expression_statement "ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);" (assignment_expression "ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8)" identifier = (cast_expression "(byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8)" ( (binary_expression "(uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8" (binary_expression "(uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10" (binary_expression "(uint)bVar1 << 0x18 | (uint)bVar3" (binary_expression "(uint)bVar1 << 0x18" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal) | (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) | (binary_expression "(uint)bVar2 << 0x10" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal)) | (binary_expression "(uint)bVar4 << 8" (cast_expression "(uint)bVar4" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal)) )))) ;) (expression_statement "pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);" (assignment_expression "pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0)" identifier = (cast_expression "(byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (call_expression "find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x4048)" * (cast_expression "(undefined4 *)(iVar18 + 0x4048)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4048)" ( (binary_expression "iVar18 + 0x4048" identifier + number_literal) )))) , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal ))))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbStack_e8)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(ppppbStack_e8)" ( identifier ))) ;) (if_statement "if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }" if (parenthesized_expression "(pppppbVar35 == (byte *****)0x0)" ( (binary_expression "pppppbVar35 == (byte *****)0x0" identifier == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }" { (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38124);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38124)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) ;) (if_statement "if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }" if (parenthesized_expression "(bVar21 != 0)" ( (binary_expression "bVar21 != 0" identifier != number_literal) )) (compound_statement "{\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }" { (expression_statement "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);" (call_expression "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc)" identifier (argument_list "(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc)" ( (binary_expression "iVar18 + 8" identifier + number_literal) , number_literal , (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x2d54" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" * (cast_expression "(int *)(pcVar40 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x380fc)" ( (binary_expression "pcVar40 + 0x380fc" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , number_literal ))) ;) (goto_statement "goto LAB_000784c4;" goto statement_identifier ;) })) }) (else_clause "else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }" else (compound_statement "{\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }" { (expression_statement "bVar21 = *(byte *)ppppbStack_108;" (assignment_expression "bVar21 = *(byte *)ppppbStack_108" identifier = (pointer_expression "*(byte *)ppppbStack_108" * (cast_expression "(byte *)ppppbStack_108" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(byte *)ppppbStack_108 = 1;" (assignment_expression "*(byte *)ppppbStack_108 = 1" (pointer_expression "*(byte *)ppppbStack_108" * (cast_expression "(byte *)ppppbStack_108" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }" if (parenthesized_expression "(bVar21 == 0)" ( (binary_expression "bVar21 == 0" identifier == number_literal) )) (compound_statement "{\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }" { (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec" identifier = (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x41ec" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                              iVar22 = 0;\n                            }" else (compound_statement "{\n                              iVar22 = 0;\n                            }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) }))) (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar40 + 0x388fc)" * (pointer_expression "*(code **)(pcVar40 + 0x388fc)" * (cast_expression "(code **)(pcVar40 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x388fc)" ( (binary_expression "pcVar40 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar18 + 4)" * (cast_expression "(undefined4 *)(iVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);" (call_expression "(**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38910))" ( (pointer_expression "**(code **)(pcVar40 + 0x38910)" * (pointer_expression "*(code **)(pcVar40 + 0x38910)" * (cast_expression "(code **)(pcVar40 + 0x38910)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38910)" ( (binary_expression "pcVar40 + 0x38910" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier ))) ;) (labeled_statement "LAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);" statement_identifier : (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38124);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38124)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) ;)) }))) (expression_statement "(*pcVar38)(pppppbVar32);" (call_expression "(*pcVar38)(pppppbVar32)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(pppppbVar32)" ( identifier ))) ;) (goto_statement "goto LAB_000784d4;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_0007882c;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }" else (compound_statement "{\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }" { (labeled_statement "LAB_00079040:\n                    (*pcVar38)();" statement_identifier : (expression_statement "(*pcVar38)();" (call_expression "(*pcVar38)()" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);" (assignment_expression "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" identifier = (call_expression "FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" identifier (argument_list "(iVar27,pbVar31,0,&ppppbStack_e8)" ( identifier , identifier , number_literal , (pointer_expression "&ppppbStack_e8" & identifier) )))) ;) (expression_statement "pppppbVar33 = pppppbVar32;" (assignment_expression "pppppbVar33 = pppppbVar32" identifier = identifier) ;) (if_statement "if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }" if (parenthesized_expression "(((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31))" ( (binary_expression "((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)" (parenthesized_expression "((iVar22 != 0) && (-1 < (int)ppppbStack_e8))" ( (binary_expression "(iVar22 != 0) && (-1 < (int)ppppbStack_e8)" (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) && (parenthesized_expression "(-1 < (int)ppppbStack_e8)" ( (binary_expression "-1 < (int)ppppbStack_e8" number_literal < (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "((int)ppppbStack_e8 < (int)pbVar31)" ( (binary_expression "(int)ppppbStack_e8 < (int)pbVar31" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }" { (if_statement "if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;" if (parenthesized_expression "(*(byte *)((int)ppppbStack_e8 + iVar27) == 0)" ( (binary_expression "*(byte *)((int)ppppbStack_e8 + iVar27) == 0" (pointer_expression "*(byte *)((int)ppppbStack_e8 + iVar27)" * (cast_expression "(byte *)((int)ppppbStack_e8 + iVar27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppbStack_e8 + iVar27)" ( (binary_expression "(int)ppppbStack_e8 + iVar27" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) == number_literal) )) (goto_statement "goto LAB_000784d4;" goto statement_identifier ;)) (expression_statement "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);" (call_expression "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc)" identifier (argument_list "(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc)" ( (binary_expression "iVar18 + 8" identifier + number_literal) , number_literal , (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x2d54" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" * (cast_expression "(int *)(pcVar40 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x380fc)" ( (binary_expression "pcVar40 + 0x380fc" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , number_literal ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);" statement_identifier : (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0007882c;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbVar12);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12)" ( identifier ))) ;) (expression_statement "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);" (assignment_expression "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" identifier = (call_expression "FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" identifier (argument_list "(iVar27,pbVar31,0,&ppppbStack_e8)" ( identifier , identifier , number_literal , (pointer_expression "&ppppbStack_e8" & identifier) )))) ;) (expression_statement "pppppbVar32 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar32 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;" if (parenthesized_expression "(((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))" ( (binary_expression "((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8)" (parenthesized_expression "((iVar22 == 0) || ((int)ppppbStack_e8 < 0))" ( (binary_expression "(iVar22 == 0) || ((int)ppppbStack_e8 < 0)" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "((int)ppppbStack_e8 < 0)" ( (binary_expression "(int)ppppbStack_e8 < 0" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) || (parenthesized_expression "(pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8)" ( (comma_expression "pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8" (assignment_expression "pbVar28 = (byte *)((int)ppppbStack_e8 + 1)" identifier = (cast_expression "(byte *)((int)ppppbStack_e8 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppbStack_e8 + 1)" ( (binary_expression "(int)ppppbStack_e8 + 1" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "(int)pbVar31 <= (int)ppppbStack_e8" (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (goto_statement "goto LAB_00078828;" goto statement_identifier ;)) (expression_statement "pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);" (assignment_expression "pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27)" identifier = (cast_expression "(byte *)((int)ppppbStack_e8 + iVar27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppbStack_e8 + iVar27)" ( (binary_expression "(int)ppppbStack_e8 + iVar27" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar11 = (int)pbVar31 - (int)pbVar28;" (assignment_expression "iVar11 = (int)pbVar31 - (int)pbVar28" identifier = (binary_expression "(int)pbVar31 - (int)pbVar28" (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "ppppbStack_108 = (byte ****)(uint)*pbVar16;" (assignment_expression "ppppbStack_108 = (byte ****)(uint)*pbVar16" identifier = (binary_expression "(byte ****)(uint)*pbVar16" (cast_expression "(byte ****)(uint)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (if_statement "if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }" if (parenthesized_expression "((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0))" ( (binary_expression "(iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)" (parenthesized_expression "(iVar11 < 4)" ( (binary_expression "iVar11 < 4" identifier < number_literal) )) || (parenthesized_expression "(iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)" ( (comma_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0" (assignment_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" identifier = (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" identifier (argument_list "(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" ( (binary_expression "pbVar28 + iVar27" identifier + identifier) , identifier , number_literal , (pointer_expression "&ppppbStack_e8" & identifier) )))) , (binary_expression "iVar22 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }" { (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) ))))) ;) (if_statement "if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }" if (parenthesized_expression "((int)pppppbVar32 < (int)(pppppbVar35 + -2))" ( (binary_expression "(int)pppppbVar32 < (int)(pppppbVar35 + -2)" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(pppppbVar35 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pppppbVar35 + -2)" ( (binary_expression "pppppbVar35 + -2" identifier + number_literal) )))) )) (compound_statement "{\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }" { (if_statement "if (iVar11 >= 4) goto LAB_0007918c;" if (parenthesized_expression "(iVar11 >= 4)" ( (binary_expression "iVar11 >= 4" identifier >= number_literal) )) (goto_statement "goto LAB_0007918c;" goto statement_identifier ;)) (labeled_statement "LAB_00079434:\n                    uVar41 = 0x55e;" statement_identifier : (expression_statement "uVar41 = 0x55e;" (assignment_expression "uVar41 = 0x55e" identifier = number_literal) ;)) (labeled_statement "LAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);" statement_identifier : (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38a34);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38a34)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38a34)" * (cast_expression "(code **)(pcVar40 + 0x38a34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38a34)" ( (binary_expression "pcVar40 + 0x38a34" identifier + number_literal) ))))) ;)) (expression_statement "(*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);" (call_expression "(*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x4124" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x42c4" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3e30" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pppppbVar32 = pppppbVar33;" (assignment_expression "pppppbVar32 = pppppbVar33" identifier = identifier) ;) (goto_statement "goto LAB_00079040;" goto statement_identifier ;) })) (labeled_statement "LAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);" statement_identifier : (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38158);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38158)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }" else (compound_statement "{\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }" { (expression_statement "pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);" (assignment_expression "pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8)" identifier = (cast_expression "(byte *****)(pbVar28 + (int)ppppbStack_e8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(pbVar28 + (int)ppppbStack_e8)" ( (binary_expression "pbVar28 + (int)ppppbStack_e8" identifier + (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) ))))) ;) (if_statement "if ((int)pppppbVar32 < 0) goto LAB_0007882c;" if (parenthesized_expression "((int)pppppbVar32 < 0)" ( (binary_expression "(int)pppppbVar32 < 0" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0007882c;" goto statement_identifier ;)) (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38158);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38158)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) ;) (if_statement "if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }" if (parenthesized_expression "((int)pppppbVar32 < (int)(pppppbVar35 + -2))" ( (binary_expression "(int)pppppbVar32 < (int)(pppppbVar35 + -2)" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(pppppbVar35 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pppppbVar35 + -2)" ( (binary_expression "pppppbVar35 + -2" identifier + number_literal) )))) )) (compound_statement "{\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }" { (labeled_statement "LAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);" statement_identifier : (expression_statement "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);" (assignment_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" identifier = (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" identifier (argument_list "(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" ( (binary_expression "pbVar28 + iVar27" identifier + identifier) , identifier , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal )))) ;)) (expression_statement "ppppbVar12 = ppppbStack_e8;" (assignment_expression "ppppbVar12 = ppppbStack_e8" identifier = identifier) ;) (if_statement "if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;" if (parenthesized_expression "((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0))" ( (binary_expression "(iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "(pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)" ( (comma_expression "pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0" (assignment_expression "pppppbVar35 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) , (binary_expression "(byte *****)ppppbStack_e8 == (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal))) ))) )) (goto_statement "goto LAB_00079434;" goto statement_identifier ;)) (expression_statement "pbVar28 = (byte *)((int)pppppbVar32 + iVar27);" (assignment_expression "pbVar28 = (byte *)((int)pppppbVar32 + iVar27)" identifier = (cast_expression "(byte *)((int)pppppbVar32 + iVar27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar32 + iVar27)" ( (binary_expression "(int)pppppbVar32 + iVar27" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);" (assignment_expression "pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8)" identifier = (cast_expression "(byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8)" ( (binary_expression "(uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8" (binary_expression "(uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10" (binary_expression "(uint)*pbVar28 << 0x18 | (uint)pbVar28[3]" (binary_expression "(uint)*pbVar28 << 0x18" (binary_expression "(uint)*pbVar28" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal) | (cast_expression "(uint)pbVar28[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar28[3]" identifier [ number_literal ]))) | (binary_expression "(uint)pbVar28[1] << 0x10" (cast_expression "(uint)pbVar28[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar28[1]" identifier [ number_literal ])) << number_literal)) | (binary_expression "(uint)pbVar28[2] << 8" (cast_expression "(uint)pbVar28[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar28[2]" identifier [ number_literal ])) << number_literal)) )))) ;) (expression_statement "iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);" (assignment_expression "iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38928))" ( (pointer_expression "**(code **)(pcVar40 + 0x38928)" * (pointer_expression "*(code **)(pcVar40 + 0x38928)" * (cast_expression "(code **)(pcVar40 + 0x38928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38928)" ( (binary_expression "pcVar40 + 0x38928" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }" { (if_statement "if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }" if (parenthesized_expression "((byte *****)ppppbStack_108 != (byte *****)0x0)" ( (binary_expression "(byte *****)ppppbStack_108 != (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) != (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }" { (expression_statement "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);" (call_expression "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc)" identifier (argument_list "(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc)" ( (binary_expression "iVar18 + 8" identifier + number_literal) , number_literal , (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x2d54" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" * (cast_expression "(int *)(pcVar40 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x380fc)" ( (binary_expression "pcVar40 + 0x380fc" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , number_literal ))) ;) })) }) (else_clause "else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }" else (compound_statement "{\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }" { (expression_statement "bVar21 = *pbVar16;" (assignment_expression "bVar21 = *pbVar16" identifier = (pointer_expression "*pbVar16" * identifier)) ;) (expression_statement "*pbVar16 = 1;" (assignment_expression "*pbVar16 = 1" (pointer_expression "*pbVar16" * identifier) = number_literal) ;) (if_statement "if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }" if (parenthesized_expression "(bVar21 == 0)" ( (binary_expression "bVar21 == 0" identifier == number_literal) )) (compound_statement "{\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }" { (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec" identifier = (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x41ec" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                        iVar22 = 0;\n                      }" else (compound_statement "{\n                        iVar22 = 0;\n                      }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) }))) (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar40 + 0x388fc)" * (pointer_expression "*(code **)(pcVar40 + 0x388fc)" * (cast_expression "(code **)(pcVar40 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x388fc)" ( (binary_expression "pcVar40 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar18 + 4)" * (cast_expression "(undefined4 *)(iVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);" (assignment_expression "puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar40 + 0x3815c))(1,0xc)" (parenthesized_expression "(**(code **)(pcVar40 + 0x3815c))" ( (pointer_expression "**(code **)(pcVar40 + 0x3815c)" * (pointer_expression "*(code **)(pcVar40 + 0x3815c)" * (cast_expression "(code **)(pcVar40 + 0x3815c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x3815c)" ( (binary_expression "pcVar40 + 0x3815c" identifier + number_literal) ))))) )) (argument_list "(1,0xc)" ( number_literal , number_literal ))))) ;) (expression_statement "uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);" (assignment_expression "uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38164))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38164))" ( (pointer_expression "**(code **)(pcVar40 + 0x38164)" * (pointer_expression "*(code **)(pcVar40 + 0x38164)" * (cast_expression "(code **)(pcVar40 + 0x38164)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38164)" ( (binary_expression "pcVar40 + 0x38164" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12)" ( identifier )))) ;) (expression_statement "uVar19 = *(undefined4 *)(iVar18 + 0x4048);" (assignment_expression "uVar19 = *(undefined4 *)(iVar18 + 0x4048)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x4048)" * (cast_expression "(undefined4 *)(iVar18 + 0x4048)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4048)" ( (binary_expression "iVar18 + 0x4048" identifier + number_literal) ))))) ;) (expression_statement "*puVar29 = uVar41;" (assignment_expression "*puVar29 = uVar41" (pointer_expression "*puVar29" * identifier) = identifier) ;) (expression_statement "puVar29[1] = pppppbVar32;" (assignment_expression "puVar29[1] = pppppbVar32" (subscript_expression "puVar29[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29[2] = 0;" (assignment_expression "puVar29[2] = 0" (subscript_expression "puVar29[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar17 = (undefined4 *)add234(uVar19,puVar29);" (assignment_expression "puVar17 = (undefined4 *)add234(uVar19,puVar29)" identifier = (cast_expression "(undefined4 *)add234(uVar19,puVar29)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "add234(uVar19,puVar29)" identifier (argument_list "(uVar19,puVar29)" ( identifier , identifier ))))) ;) (if_statement "if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }" if (parenthesized_expression "(puVar29 == puVar17)" ( (binary_expression "puVar29 == puVar17" identifier == identifier) )) (compound_statement "{\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }" { (expression_statement "(**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);" (call_expression "(**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38910))" ( (pointer_expression "**(code **)(pcVar40 + 0x38910)" * (pointer_expression "*(code **)(pcVar40 + 0x38910)" * (cast_expression "(code **)(pcVar40 + 0x38910)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38910)" ( (binary_expression "pcVar40 + 0x38910" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier ))) ;) (expression_statement "puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);" (assignment_expression "puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar40 + 0x3815c))(1,0x10)" (parenthesized_expression "(**(code **)(pcVar40 + 0x3815c))" ( (pointer_expression "**(code **)(pcVar40 + 0x3815c)" * (pointer_expression "*(code **)(pcVar40 + 0x3815c)" * (cast_expression "(code **)(pcVar40 + 0x3815c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x3815c)" ( (binary_expression "pcVar40 + 0x3815c" identifier + number_literal) ))))) )) (argument_list "(1,0x10)" ( number_literal , number_literal ))))) ;) (expression_statement "puVar20 = *(undefined4 **)(iVar18 + 0x4050);" (assignment_expression "puVar20 = *(undefined4 **)(iVar18 + 0x4050)" identifier = (pointer_expression "*(undefined4 **)(iVar18 + 0x4050)" * (cast_expression "(undefined4 **)(iVar18 + 0x4050)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 0x4050)" ( (binary_expression "iVar18 + 0x4050" identifier + number_literal) ))))) ;) (expression_statement "*puVar17 = 0;" (assignment_expression "*puVar17 = 0" (pointer_expression "*puVar17" * identifier) = number_literal) ;) (if_statement "if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }" if (parenthesized_expression "(puVar20 == (undefined4 *)0x0)" ( (binary_expression "puVar20 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }" { (expression_statement "*(undefined4 **)(iVar18 + 0x404c) = puVar17;" (assignment_expression "*(undefined4 **)(iVar18 + 0x404c) = puVar17" (pointer_expression "*(undefined4 **)(iVar18 + 0x404c)" * (cast_expression "(undefined4 **)(iVar18 + 0x404c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 0x404c)" ( (binary_expression "iVar18 + 0x404c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                          *puVar20 = puVar17;\n                        }" else (compound_statement "{\n                          *puVar20 = puVar17;\n                        }" { (expression_statement "*puVar20 = puVar17;" (assignment_expression "*puVar20 = puVar17" (pointer_expression "*puVar20" * identifier) = identifier) ;) }))) (expression_statement "puVar17[3] = puVar29;" (assignment_expression "puVar17[3] = puVar29" (subscript_expression "puVar17[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[1] = 0;" (assignment_expression "puVar17[1] = 0" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar17[2] = ppppbStack_108;" (assignment_expression "puVar17[2] = ppppbStack_108" (subscript_expression "puVar17[2]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }" else (compound_statement "{\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }" { (expression_statement "(**(code **)(pcVar40 + 0x38124))(puVar29);" (call_expression "(**(code **)(pcVar40 + 0x38124))(puVar29)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(puVar29)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);" (call_expression "(**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38910))" ( (pointer_expression "**(code **)(pcVar40 + 0x38910)" * (pointer_expression "*(code **)(pcVar40 + 0x38910)" * (cast_expression "(code **)(pcVar40 + 0x38910)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38910)" ( (binary_expression "pcVar40 + 0x38910" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier ))) ;) }))) }))) (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbVar12);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pppppbVar35 = (byte *****)ppppbVar12;" (assignment_expression "pppppbVar35 = (byte *****)ppppbVar12" identifier = (cast_expression "(byte *****)ppppbVar12" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);" statement_identifier : (expression_statement "iVar27 = (*pcVar38)(iVar22 + -0x4144);" (assignment_expression "iVar27 = (*pcVar38)(iVar22 + -0x4144)" identifier = (call_expression "(*pcVar38)(iVar22 + -0x4144)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(iVar22 + -0x4144)" ( (binary_expression "iVar22 + -0x4144" identifier + number_literal) )))) ;)) (expression_statement "pppppbVar32 = pppppbVar33;" (assignment_expression "pppppbVar32 = pppppbVar33" identifier = identifier) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (if_statement "if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }" if (parenthesized_expression "(bVar21 != 1)" ( (binary_expression "bVar21 != 1" identifier != number_literal) )) (compound_statement "{\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }" { (labeled_statement "LAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);" statement_identifier : (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3f54" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier )))) ;)) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "(**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));" (call_expression "(**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8))" (parenthesized_expression "(**(code **)(**(int **)(iVar18 + 8) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar18 + 8) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar18 + 8) + 4)" * (cast_expression "(code **)(**(int **)(iVar18 + 8) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar18 + 8) + 4)" ( (binary_expression "**(int **)(iVar18 + 8) + 4" (pointer_expression "**(int **)(iVar18 + 8)" * (pointer_expression "*(int **)(iVar18 + 8)" * (cast_expression "(int **)(iVar18 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar18 + 8))" ( (pointer_expression "*(int **)(iVar18 + 8)" * (cast_expression "(int **)(iVar18 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 8)" * (cast_expression "(undefined4 *)(iVar18 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00077400(iVar18);" (call_expression "FUN_00077400(iVar18)" identifier (argument_list "(iVar18)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (labeled_statement "LAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }" statement_identifier : (if_statement "if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }" if (parenthesized_expression "((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9))" ( (binary_expression "(bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)" (parenthesized_expression "(bVar21 == 0x62)" ( (binary_expression "bVar21 == 0x62" identifier == number_literal) )) && (parenthesized_expression "(pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)" ( (comma_expression "pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9" (assignment_expression "pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c)" identifier = (pointer_expression "*(byte ******)(pcVar40 + 0x3885c)" * (cast_expression "(byte ******)(pcVar40 + 0x3885c)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(pcVar40 + 0x3885c)" ( (binary_expression "pcVar40 + 0x3885c" identifier + number_literal) ))))) , (binary_expression "3 < (int)pppppbVar35 + -9" number_literal < (binary_expression "(int)pppppbVar35 + -9" (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal))) ))) )) (compound_statement "{\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }" { (expression_statement "pppppbVar32 = pppppbVar32 + 0x1abc;" (assignment_expression "pppppbVar32 = pppppbVar32 + 0x1abc" identifier = (binary_expression "pppppbVar32 + 0x1abc" identifier + number_literal)) ;) (expression_statement "iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);" (assignment_expression "iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0)" identifier = (call_expression "FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0)" identifier (argument_list "(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0)" ( (binary_expression "iVar18 + 0x29" identifier + number_literal) , (cast_expression "(byte *)((int)pppppbVar35 + -9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar35 + -9)" ( (binary_expression "(int)pppppbVar35 + -9" (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal )))) ;) (expression_statement "ppppbVar12 = ppppbStack_e8;" (assignment_expression "ppppbVar12 = ppppbStack_e8" identifier = identifier) ;) (if_statement "if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }" if (parenthesized_expression "((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0))" ( (binary_expression "(iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)" (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) && (parenthesized_expression "((byte *****)ppppbStack_e8 != (byte *****)0x0)" ( (binary_expression "(byte *****)ppppbStack_e8 != (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) != (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ))) )) (compound_statement "{\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }" { (expression_statement "ppppbStack_108 = ppppbStack_e8;" (assignment_expression "ppppbStack_108 = ppppbStack_e8" identifier = identifier) ;) (expression_statement "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);" (assignment_expression "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38c4c))" ( (pointer_expression "**(code **)(pcVar40 + 0x38c4c)" * (pointer_expression "*(code **)(pcVar40 + 0x38c4c)" * (cast_expression "(code **)(pcVar40 + 0x38c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38c4c)" ( (binary_expression "pcVar40 + 0x38c4c" identifier + number_literal) ))))) )) (argument_list "(ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300)" ( identifier , (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x4300" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" * (cast_expression "(int *)(pcVar40 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x380fc)" ( (binary_expression "pcVar40 + 0x380fc" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }" if (parenthesized_expression "((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   ))" ( (binary_expression "(iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )" ( (comma_expression "iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0" (assignment_expression "iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14))" identifier = (call_expression "(**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14))" (parenthesized_expression "(**(code **)(pcVar40 + 0x3865c))" ( (pointer_expression "**(code **)(pcVar40 + 0x3865c)" * (pointer_expression "*(code **)(pcVar40 + 0x3865c)" * (cast_expression "(code **)(pcVar40 + 0x3865c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x3865c)" ( (binary_expression "pcVar40 + 0x3865c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14))" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) )))) , (binary_expression "iVar22 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }" { (expression_statement "uVar41 = *(undefined4 *)(iVar18 + 0x25);" (assignment_expression "uVar41 = *(undefined4 *)(iVar18 + 0x25)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x25)" * (cast_expression "(undefined4 *)(iVar18 + 0x25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x25)" ( (binary_expression "iVar18 + 0x25" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbVar12);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12)" ( identifier ))) ;) (expression_statement "uStack_e0 = uVar41;" (assignment_expression "uStack_e0 = uVar41" identifier = identifier) ;) (expression_statement "puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;" (assignment_expression "puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" identifier = (cast_expression "(undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x403c)" * (cast_expression "(undefined4 *)(iVar18 + 0x403c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x403c)" ( (binary_expression "iVar18 + 0x403c" identifier + number_literal) )))) , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal ))))) ;) (if_statement "if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }" if (parenthesized_expression "(puVar29 == (undefined4 *)0x0)" ( (binary_expression "puVar29 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }" { (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38158);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38158)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) ;) (expression_statement "iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;" (assignment_expression "iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8" identifier = (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3fe8" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);" statement_identifier : (expression_statement "uVar41 = (*pcVar38)(iVar27,uVar41);" (assignment_expression "uVar41 = (*pcVar38)(iVar27,uVar41)" identifier = (call_expression "(*pcVar38)(iVar27,uVar41)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(iVar27,uVar41)" ( identifier , identifier )))) ;)) (expression_statement "FUN_00077910(iVar18,uVar41);" (call_expression "FUN_00077910(iVar18,uVar41)" identifier (argument_list "(iVar18,uVar41)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(uVar41);" (call_expression "(**(code **)(pcVar40 + 0x38124))(uVar41)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(uVar41)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }" else (compound_statement "{\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }" { (expression_statement "pppbStack_c0 = (byte ***)*puVar29;" (assignment_expression "pppbStack_c0 = (byte ***)*puVar29" identifier = (cast_expression "(byte ***)*puVar29" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "*puVar29" * identifier))) ;) (expression_statement "FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);" (call_expression "FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc)" identifier (argument_list "(iVar18 + 8,100,&pppbStack_c0,4,0,0xc)" ( (binary_expression "iVar18 + 8" identifier + number_literal) , number_literal , (pointer_expression "&pppbStack_c0" & identifier) , number_literal , number_literal , number_literal ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (expression_statement "iVar22 = *(int *)(pcVar40 + 0x380fc);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x380fc)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x380fc)" * (cast_expression "(int *)(pcVar40 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x380fc)" ( (binary_expression "pcVar40 + 0x380fc" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);" (assignment_expression "iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38c4c))" ( (pointer_expression "**(code **)(pcVar40 + 0x38c4c)" * (pointer_expression "*(code **)(pcVar40 + 0x38c4c)" * (cast_expression "(code **)(pcVar40 + 0x38c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38c4c)" ( (binary_expression "pcVar40 + 0x38c4c" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12,iVar22 + 0x429c)" ( identifier , (binary_expression "iVar22 + 0x429c" identifier + number_literal) )))) ;) (if_statement "if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }" { (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbVar12);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12)" ( identifier ))) ;) (expression_statement "ppppbStack_108 = ppppbVar12;" (assignment_expression "ppppbStack_108 = ppppbVar12" identifier = identifier) ;) (goto_statement "goto LAB_00078df8;" goto statement_identifier ;) })) (expression_statement "uVar41 = *(undefined4 *)(iVar18 + 0x25);" (assignment_expression "uVar41 = *(undefined4 *)(iVar18 + 0x25)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x25)" * (cast_expression "(undefined4 *)(iVar18 + 0x25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x25)" ( (binary_expression "iVar18 + 0x25" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbVar12);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12)" ( identifier ))) ;) (expression_statement "uStack_e0 = uVar41;" (assignment_expression "uStack_e0 = uVar41" identifier = identifier) ;) (expression_statement "ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);" (assignment_expression "ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" identifier = (cast_expression "(byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x403c)" * (cast_expression "(undefined4 *)(iVar18 + 0x403c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x403c)" ( (binary_expression "iVar18 + 0x403c" identifier + number_literal) )))) , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal ))))) ;) (if_statement "if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }" if (parenthesized_expression "((byte *****)ppppbStack_108 == (byte *****)0x0)" ( (binary_expression "(byte *****)ppppbStack_108 == (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }" { (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38158);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38158)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) ;) (expression_statement "iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;" (assignment_expression "iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0" identifier = (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3fb0" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_000794d0;" goto statement_identifier ;) })) (if_statement "if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }" if (parenthesized_expression "((int)pbVar31 < 0x11)" ( (binary_expression "(int)pbVar31 < 0x11" (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }" { (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3f7c" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "cVar5 = *(char *)(iVar18 + 0x34);" (assignment_expression "cVar5 = *(char *)(iVar18 + 0x34)" identifier = (pointer_expression "*(char *)(iVar18 + 0x34)" * (cast_expression "(char *)(iVar18 + 0x34)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x34)" ( (binary_expression "iVar18 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "pbVar28 = (byte *)((int)pppppbVar35 + -0x16);" (assignment_expression "pbVar28 = (byte *)((int)pppppbVar35 + -0x16)" identifier = (cast_expression "(byte *)((int)pppppbVar35 + -0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar35 + -0x16)" ( (binary_expression "(int)pppppbVar35 + -0x16" (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "cVar6 = *(char *)(iVar18 + 0x35);" (assignment_expression "cVar6 = *(char *)(iVar18 + 0x35)" identifier = (pointer_expression "*(char *)(iVar18 + 0x35)" * (cast_expression "(char *)(iVar18 + 0x35)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x35)" ( (binary_expression "iVar18 + 0x35" identifier + number_literal) ))))) ;) (if_statement "if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }" if (parenthesized_expression "((int)pbVar28 < 4)" ( (binary_expression "(int)pbVar28 < 4" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }" { (expression_statement "ppppbVar12 = (byte ****)x11_identify_auth_proto(0);" (assignment_expression "ppppbVar12 = (byte ****)x11_identify_auth_proto(0)" identifier = (cast_expression "(byte ****)x11_identify_auth_proto(0)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "x11_identify_auth_proto(0)" identifier (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(0);" (call_expression "(**(code **)(pcVar40 + 0x38124))(0)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) (labeled_statement "LAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;" statement_identifier : (expression_statement "pppppbVar35 = (byte *****)0xffffffff;" (assignment_expression "pppppbVar35 = (byte *****)0xffffffff" identifier = (cast_expression "(byte *****)0xffffffff" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;)) }) (else_clause "else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }" else (compound_statement "{\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }" { (expression_statement "iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);" (assignment_expression "iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0)" identifier = (call_expression "FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0)" identifier (argument_list "(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0)" ( (binary_expression "iVar18 + 0x36" identifier + number_literal) , identifier , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal )))) ;) (expression_statement "pppppbVar35 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar35 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    pppppbVar35 = (byte *****)0x0;\n                  }" { (expression_statement "pppppbVar35 = (byte *****)0x0;" (assignment_expression "pppppbVar35 = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) })) (expression_statement "ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);" (assignment_expression "ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35)" identifier = (cast_expression "(byte ****)x11_identify_auth_proto(pppppbVar35)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "x11_identify_auth_proto(pppppbVar35)" identifier (argument_list "(pppppbVar35)" ( identifier ))))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(pppppbVar35);" (call_expression "(**(code **)(pcVar40 + 0x38124))(pppppbVar35)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(pppppbVar35)" ( identifier ))) ;) (expression_statement "iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);" (assignment_expression "iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8)" identifier = (call_expression "FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8)" identifier (argument_list "(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8)" ( (binary_expression "iVar18 + 0x36" identifier + number_literal) , identifier , number_literal , (pointer_expression "&ppppbStack_e8" & identifier) )))) ;) (expression_statement "pppppbVar35 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar35 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (iVar11 == 0) goto LAB_0007949c;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0007949c;" goto statement_identifier ;)) }))) (expression_statement "pbVar28 = (byte *)((int)pppppbVar35 + 0x11);" (assignment_expression "pbVar28 = (byte *)((int)pppppbVar35 + 0x11)" identifier = (cast_expression "(byte *)((int)pppppbVar35 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar35 + 0x11)" ( (binary_expression "(int)pppppbVar35 + 0x11" (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar11 = (int)pbVar31 - (int)pbVar28;" (assignment_expression "iVar11 = (int)pbVar31 - (int)pbVar28" identifier = (binary_expression "(int)pbVar31 - (int)pbVar28" (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppbVar35 = (byte *****)0x0;" (assignment_expression "pppppbVar35 = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (if_statement "if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }" if (parenthesized_expression "(iVar11 < 4)" ( (binary_expression "iVar11 < 4" identifier < number_literal) )) (compound_statement "{\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }" { (labeled_statement "LAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;" statement_identifier : (expression_statement "pppppbVar33 = (byte *****)0xffffffff;" (assignment_expression "pppppbVar33 = (byte *****)0xffffffff" identifier = (cast_expression "(byte *****)0xffffffff" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;)) }) (else_clause "else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }" else (compound_statement "{\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }" { (expression_statement "iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);" (assignment_expression "iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" identifier = (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" identifier (argument_list "(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" ( (binary_expression "pbVar28 + iVar27" identifier + identifier) , identifier , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal )))) ;) (expression_statement "pppppbVar35 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar35 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                    pppppbVar35 = (byte *****)0x0;\n                  }" { (expression_statement "pppppbVar35 = (byte *****)0x0;" (assignment_expression "pppppbVar35 = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) })) (expression_statement "iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);" (assignment_expression "iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" identifier = (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" identifier (argument_list "(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" ( (binary_expression "pbVar28 + iVar27" identifier + identifier) , identifier , number_literal , (pointer_expression "&ppppbStack_e8" & identifier) )))) ;) (expression_statement "pppppbVar33 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar33 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (iVar11 == 0) goto LAB_00078ff4;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00078ff4;" goto statement_identifier ;)) }))) (if_statement "if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }" if (parenthesized_expression "((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3))" ( (binary_expression "(int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)" (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(pbVar28 + (int)pppppbVar33 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar28 + (int)pppppbVar33 + 3)" ( (binary_expression "pbVar28 + (int)pppppbVar33 + 3" (binary_expression "pbVar28 + (int)pppppbVar33" identifier + (cast_expression "(int)pppppbVar33" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )))) )) (compound_statement "{\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }" { (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3f7c" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(pppppbVar35);" (call_expression "(**(code **)(pcVar40 + 0x38124))(pppppbVar35)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(pppppbVar35)" ( identifier ))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;" (assignment_expression "pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27" identifier = (binary_expression "pbVar28 + (int)pppppbVar33 + iVar27" (binary_expression "pbVar28 + (int)pppppbVar33" identifier + (cast_expression "(int)pppppbVar33" ( (type_descriptor "int" primitive_type) ) identifier)) + identifier)) ;) (if_statement "if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }" if (parenthesized_expression "(-1 < (int)ppppbVar12)" ( (binary_expression "-1 < (int)ppppbVar12" number_literal < (cast_expression "(int)ppppbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }" { (expression_statement "bVar21 = *pbVar31;" (assignment_expression "bVar21 = *pbVar31" identifier = (pointer_expression "*pbVar31" * identifier)) ;) (expression_statement "bVar10 = cVar6 != '\0';" (assignment_expression "bVar10 = cVar6 != '\0'" identifier = (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "bVar1 = pbVar31[1];" (assignment_expression "bVar1 = pbVar31[1]" identifier = (subscript_expression "pbVar31[1]" identifier [ number_literal ])) ;) (expression_statement "bVar2 = pbVar31[3];" (assignment_expression "bVar2 = pbVar31[3]" identifier = (subscript_expression "pbVar31[3]" identifier [ number_literal ])) ;) (expression_statement "bVar3 = pbVar31[2];" (assignment_expression "bVar3 = pbVar31[2]" identifier = (subscript_expression "pbVar31[2]" identifier [ number_literal ])) ;) (expression_statement "((byte *****)ppppbStack_108)[6] = ppppbVar12;" (assignment_expression "((byte *****)ppppbStack_108)[6] = ppppbVar12" (subscript_expression "((byte *****)ppppbStack_108)[6]" (parenthesized_expression "((byte *****)ppppbStack_108)" ( (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);" (assignment_expression "ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8)" identifier = (cast_expression "(byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8)" identifier (argument_list "(pppppbVar35,(byte *****)ppppbStack_108 + 8)" ( identifier , (binary_expression "(byte *****)ppppbStack_108 + 8" (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38124);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38124)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) ;) (expression_statement "((byte *****)ppppbStack_108)[7] = ppppbVar14;" (assignment_expression "((byte *****)ppppbStack_108)[7] = ppppbVar14" (subscript_expression "((byte *****)ppppbStack_108)[7]" (parenthesized_expression "((byte *****)ppppbStack_108)" ( (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "(*pcVar38)(pppppbVar35);" (call_expression "(*pcVar38)(pppppbVar35)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(pppppbVar35)" ( identifier ))) ;) (expression_statement "ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);" (assignment_expression "ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108)" identifier = (cast_expression "(byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38920))" ( (pointer_expression "**(code **)(pcVar40 + 0x38920)" * (pointer_expression "*(code **)(pcVar40 + 0x38920)" * (cast_expression "(code **)(pcVar40 + 0x38920)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38920)" ( (binary_expression "pcVar40 + 0x38920" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier , identifier , identifier ))))) ;) (expression_statement "((byte *****)ppppbStack_108)[5] = ppppbVar12;" (assignment_expression "((byte *****)ppppbStack_108)[5] = ppppbVar12" (subscript_expression "((byte *****)ppppbStack_108)[5]" (parenthesized_expression "((byte *****)ppppbStack_108)" ( (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;" (assignment_expression "((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10" (subscript_expression "((byte *****)ppppbStack_108)[9]" (parenthesized_expression "((byte *****)ppppbStack_108)" ( (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]) = (cast_expression "(byte ****)(uint)bVar10" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (cast_expression "(uint)bVar10" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);" (assignment_expression "pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3])" identifier = (cast_expression "(byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3])" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (call_expression "(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3])" (parenthesized_expression "(**(code **)(pcVar40 + 0x38b58))" ( (pointer_expression "**(code **)(pcVar40 + 0x38b58)" * (pointer_expression "*(code **)(pcVar40 + 0x38b58)" * (cast_expression "(code **)(pcVar40 + 0x38b58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38b58)" ( (binary_expression "pcVar40 + 0x38b58" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12[3])" ( (subscript_expression "ppppbVar12[3]" identifier [ number_literal ]) ))))) ;) (expression_statement "pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);" (assignment_expression "pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4])" identifier = (cast_expression "(byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4])" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (call_expression "(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4])" (parenthesized_expression "(**(code **)(pcVar40 + 0x38b58))" ( (pointer_expression "**(code **)(pcVar40 + 0x38b58)" * (pointer_expression "*(code **)(pcVar40 + 0x38b58)" * (cast_expression "(code **)(pcVar40 + 0x38b58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38b58)" ( (binary_expression "pcVar40 + 0x38b58" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12[4])" ( (subscript_expression "ppppbVar12[4]" identifier [ number_literal ]) ))))) ;) (expression_statement "puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);" (assignment_expression "puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1)" identifier = (cast_expression "(undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1)" (parenthesized_expression "(**(code **)(pcVar40 + 0x3815c))" ( (pointer_expression "**(code **)(pcVar40 + 0x3815c)" * (pointer_expression "*(code **)(pcVar40 + 0x3815c)" * (cast_expression "(code **)(pcVar40 + 0x3815c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x3815c)" ( (binary_expression "pcVar40 + 0x3815c" identifier + number_literal) ))))) )) (argument_list "((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1)" ( (binary_expression "(byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35" (cast_expression "(byte *)((int)pppppbVar32 + 0x1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar32 + 0x1d)" ( (binary_expression "(int)pppppbVar32 + 0x1d" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) + (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal ))))) ;) (expression_statement "puVar15[4] = 0;" (assignment_expression "puVar15[4] = 0" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar15[5] = 0;" (assignment_expression "puVar15[5] = 0" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = *(uint *)(iVar22 + 0x429c);" (assignment_expression "uVar23 = *(uint *)(iVar22 + 0x429c)" identifier = (pointer_expression "*(uint *)(iVar22 + 0x429c)" * (cast_expression "(uint *)(iVar22 + 0x429c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x429c)" ( (binary_expression "iVar22 + 0x429c" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined1 *)(iVar22 + 0x42a0);" (assignment_expression "uVar7 = *(undefined1 *)(iVar22 + 0x42a0)" identifier = (pointer_expression "*(undefined1 *)(iVar22 + 0x42a0)" * (cast_expression "(undefined1 *)(iVar22 + 0x42a0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x42a0)" ( (binary_expression "iVar22 + 0x42a0" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined1 *)(iVar22 + 0x42a1);" (assignment_expression "uVar8 = *(undefined1 *)(iVar22 + 0x42a1)" identifier = (pointer_expression "*(undefined1 *)(iVar22 + 0x42a1)" * (cast_expression "(undefined1 *)(iVar22 + 0x42a1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x42a1)" ( (binary_expression "iVar22 + 0x42a1" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined1 *)(iVar22 + 0x42a2);" (assignment_expression "uVar9 = *(undefined1 *)(iVar22 + 0x42a2)" identifier = (pointer_expression "*(undefined1 *)(iVar22 + 0x42a2)" * (cast_expression "(undefined1 *)(iVar22 + 0x42a2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x42a2)" ( (binary_expression "iVar22 + 0x42a2" identifier + number_literal) ))))) ;) (expression_statement "puVar15[3] = (char)uVar41;" (assignment_expression "puVar15[3] = (char)uVar41" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = (cast_expression "(char)uVar41" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*puVar15 = (char)((uint)uVar41 >> 0x18);" (assignment_expression "*puVar15 = (char)((uint)uVar41 >> 0x18)" (pointer_expression "*puVar15" * identifier) = (cast_expression "(char)((uint)uVar41 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar41 >> 0x18)" ( (binary_expression "(uint)uVar41 >> 0x18" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar15[1] = (char)((uint)uVar41 >> 0x10);" (assignment_expression "puVar15[1] = (char)((uint)uVar41 >> 0x10)" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)uVar41 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar41 >> 0x10)" ( (binary_expression "(uint)uVar41 >> 0x10" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar15[2] = (char)((uint)uVar41 >> 8);" (assignment_expression "puVar15[2] = (char)((uint)uVar41 >> 8)" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)uVar41 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar41 >> 8)" ( (binary_expression "(uint)uVar41 >> 8" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar15[7] = 7;" (assignment_expression "puVar15[7] = 7" (subscript_expression "puVar15[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar15[6] = 0;" (assignment_expression "puVar15[6] = 0" (subscript_expression "puVar15[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar24 = puVar15 + 8;" (assignment_expression "puVar24 = puVar15 + 8" identifier = (binary_expression "puVar15 + 8" identifier + number_literal)) ;) (expression_statement "uVar30 = (uint)puVar24 & 3;" (assignment_expression "uVar30 = (uint)puVar24 & 3" identifier = (binary_expression "(uint)puVar24 & 3" (cast_expression "(uint)puVar24" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;" (assignment_expression "*(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8" (pointer_expression "*(uint *)(puVar24 + -uVar30)" * (cast_expression "(uint *)(puVar24 + -uVar30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -uVar30)" ( (binary_expression "puVar24 + -uVar30" identifier + (unary_expression "-uVar30" - identifier)) )))) = (binary_expression "*(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8" (binary_expression "*(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8" (pointer_expression "*(uint *)(puVar24 + -uVar30)" * (cast_expression "(uint *)(puVar24 + -uVar30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -uVar30)" ( (binary_expression "puVar24 + -uVar30" identifier + (unary_expression "-uVar30" - identifier)) )))) & (binary_expression "-1 << (4 - uVar30) * 8" number_literal << (binary_expression "(4 - uVar30) * 8" (parenthesized_expression "(4 - uVar30)" ( (binary_expression "4 - uVar30" number_literal - identifier) )) * number_literal))) | (binary_expression "uVar23 >> uVar30 * 8" identifier >> (binary_expression "uVar30 * 8" identifier * number_literal)))) ;) (expression_statement "puVar24 = puVar15 + 0xb;" (assignment_expression "puVar24 = puVar15 + 0xb" identifier = (binary_expression "puVar15 + 0xb" identifier + number_literal)) ;) (expression_statement "uVar30 = (uint)puVar24 & 3;" (assignment_expression "uVar30 = (uint)puVar24 & 3" identifier = (binary_expression "(uint)puVar24 & 3" (cast_expression "(uint)puVar24" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;" (assignment_expression "*(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8" (pointer_expression "*(uint *)(puVar24 + -uVar30)" * (cast_expression "(uint *)(puVar24 + -uVar30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -uVar30)" ( (binary_expression "puVar24 + -uVar30" identifier + (unary_expression "-uVar30" - identifier)) )))) = (binary_expression "*(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8" (binary_expression "*(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8" (pointer_expression "*(uint *)(puVar24 + -uVar30)" * (cast_expression "(uint *)(puVar24 + -uVar30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -uVar30)" ( (binary_expression "puVar24 + -uVar30" identifier + (unary_expression "-uVar30" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar30 + 1) * 8" number_literal >> (binary_expression "(uVar30 + 1) * 8" (parenthesized_expression "(uVar30 + 1)" ( (binary_expression "uVar30 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar23 << (3 - uVar30) * 8" identifier << (binary_expression "(3 - uVar30) * 8" (parenthesized_expression "(3 - uVar30)" ( (binary_expression "3 - uVar30" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar15[0xc] = uVar7;" (assignment_expression "puVar15[0xc] = uVar7" (subscript_expression "puVar15[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[0xd] = uVar8;" (assignment_expression "puVar15[0xd] = uVar8" (subscript_expression "puVar15[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[0xe] = uVar9;" (assignment_expression "puVar15[0xe] = uVar9" (subscript_expression "puVar15[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[0x10] = bVar10;" (assignment_expression "puVar15[0x10] = bVar10" (subscript_expression "puVar15[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);" (assignment_expression "puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18)" (subscript_expression "puVar15[0x11]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar32 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar32 >> 0x18)" ( (binary_expression "(uint)pppppbVar32 >> 0x18" (cast_expression "(uint)pppppbVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);" (assignment_expression "puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10)" (subscript_expression "puVar15[0x12]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar32 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar32 >> 0x10)" ( (binary_expression "(uint)pppppbVar32 >> 0x10" (cast_expression "(uint)pppppbVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);" (assignment_expression "puVar15[0x13] = (char)((uint)pppppbVar32 >> 8)" (subscript_expression "puVar15[0x13]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar32 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar32 >> 8)" ( (binary_expression "(uint)pppppbVar32 >> 8" (cast_expression "(uint)pppppbVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar15[0x14] = (char)pppppbVar32;" (assignment_expression "puVar15[0x14] = (char)pppppbVar32" (subscript_expression "puVar15[0x14]" identifier [ number_literal ]) = (cast_expression "(char)pppppbVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38c14);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38c14)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38c14)" * (cast_expression "(code **)(pcVar40 + 0x38c14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38c14)" ( (binary_expression "pcVar40 + 0x38c14" identifier + number_literal) ))))) ;) (expression_statement "puVar15[0xf] = cVar5 != '\0';" (assignment_expression "puVar15[0xf] = cVar5 != '\0'" (subscript_expression "puVar15[0xf]" identifier [ number_literal ]) = (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "(*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);" (call_expression "(*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32)" ( (binary_expression "puVar15 + 0x15" identifier + number_literal) , (subscript_expression "((byte *****)ppppbStack_108)[5][3]" (subscript_expression "((byte *****)ppppbStack_108)[5]" (parenthesized_expression "((byte *****)ppppbStack_108)" ( (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]) [ number_literal ]) , identifier ))) ;) (expression_statement "puVar24 = puVar15 + (int)pppppbVar32;" (assignment_expression "puVar24 = puVar15 + (int)pppppbVar32" identifier = (binary_expression "puVar15 + (int)pppppbVar32" identifier + (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);" (assignment_expression "puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18)" (subscript_expression "puVar24[0x15]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar35 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar35 >> 0x18)" ( (binary_expression "(uint)pppppbVar35 >> 0x18" (cast_expression "(uint)pppppbVar35" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);" (assignment_expression "puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10)" (subscript_expression "puVar24[0x16]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar35 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar35 >> 0x10)" ( (binary_expression "(uint)pppppbVar35 >> 0x10" (cast_expression "(uint)pppppbVar35" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);" (assignment_expression "puVar24[0x17] = (char)((uint)pppppbVar35 >> 8)" (subscript_expression "puVar24[0x17]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar35 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar35 >> 8)" ( (binary_expression "(uint)pppppbVar35 >> 8" (cast_expression "(uint)pppppbVar35" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar24[0x18] = (char)pppppbVar35;" (assignment_expression "puVar24[0x18] = (char)pppppbVar35" (subscript_expression "puVar24[0x18]" identifier [ number_literal ]) = (cast_expression "(char)pppppbVar35" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);" (call_expression "(**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38c14))" ( (pointer_expression "**(code **)(pcVar40 + 0x38c14)" * (pointer_expression "*(code **)(pcVar40 + 0x38c14)" * (cast_expression "(code **)(pcVar40 + 0x38c14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38c14)" ( (binary_expression "pcVar40 + 0x38c14" identifier + number_literal) ))))) )) (argument_list "(puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35)" ( (binary_expression "puVar15 + (int)((int)pppppbVar32 + 0x19)" identifier + (cast_expression "(int)((int)pppppbVar32 + 0x19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppbVar32 + 0x19)" ( (binary_expression "(int)pppppbVar32 + 0x19" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (subscript_expression "((byte *****)ppppbStack_108)[5][4]" (subscript_expression "((byte *****)ppppbStack_108)[5]" (parenthesized_expression "((byte *****)ppppbStack_108)" ( (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]) [ number_literal ]) , identifier ))) ;) (expression_statement "puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);" (assignment_expression "puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35)" identifier = (binary_expression "puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35)" identifier + (cast_expression "(int)((int)pppppbVar32 + (int)pppppbVar35)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppbVar32 + (int)pppppbVar35)" ( (binary_expression "(int)pppppbVar32 + (int)pppppbVar35" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "puVar24[0x1c] = bVar2;" (assignment_expression "puVar24[0x1c] = bVar2" (subscript_expression "puVar24[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar24[0x19] = bVar21;" (assignment_expression "puVar24[0x19] = bVar21" (subscript_expression "puVar24[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar24[0x1a] = bVar1;" (assignment_expression "puVar24[0x1a] = bVar1" (subscript_expression "puVar24[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar24[0x1b] = bVar3;" (assignment_expression "puVar24[0x1b] = bVar3" (subscript_expression "puVar24[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar40 + 0x388fc)" * (pointer_expression "*(code **)(pcVar40 + 0x388fc)" * (cast_expression "(code **)(pcVar40 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x388fc)" ( (binary_expression "pcVar40 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar18 + 4)" * (cast_expression "(undefined4 *)(iVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) , number_literal , identifier , (binary_expression "(byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35" (cast_expression "(byte *)((int)pppppbVar32 + 0x1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar32 + 0x1d)" ( (binary_expression "(int)pppppbVar32 + 0x1d" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) + (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal ))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(puVar15);" (call_expression "(**(code **)(pcVar40 + 0x38124))(puVar15)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(puVar15)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (goto_statement "goto LAB_00078f28;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);" statement_identifier : (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar40 + 0x388fc)" * (pointer_expression "*(code **)(pcVar40 + 0x388fc)" * (cast_expression "(code **)(pcVar40 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x388fc)" ( (binary_expression "pcVar40 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar18 + 4)" * (cast_expression "(undefined4 *)(iVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) , identifier , identifier , identifier , number_literal ))) ;)) (if_statement "if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }" if (parenthesized_expression "((bVar21 == 0x61) && (3 < (int)pbVar31))" ( (binary_expression "(bVar21 == 0x61) && (3 < (int)pbVar31)" (parenthesized_expression "(bVar21 == 0x61)" ( (binary_expression "bVar21 == 0x61" identifier == number_literal) )) && (parenthesized_expression "(3 < (int)pbVar31)" ( (binary_expression "3 < (int)pbVar31" number_literal < (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }" { (expression_statement "uStack_e0 = *(undefined4 *)(iVar18 + 0x25);" (assignment_expression "uStack_e0 = *(undefined4 *)(iVar18 + 0x25)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x25)" * (cast_expression "(undefined4 *)(iVar18 + 0x25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x25)" ( (binary_expression "iVar18 + 0x25" identifier + number_literal) ))))) ;) (expression_statement "iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);" (assignment_expression "iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" identifier = (call_expression "find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x403c)" * (cast_expression "(undefined4 *)(iVar18 + 0x403c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x403c)" ( (binary_expression "iVar18 + 0x403c" identifier + number_literal) )))) , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal )))) ;) (if_statement "if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }" if (parenthesized_expression "(iVar27 != 0)" ( (binary_expression "iVar27 != 0" identifier != number_literal) )) (compound_statement "{\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }" { (if_statement "if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" if (parenthesized_expression "(*(int *)(iVar27 + 0x10) == 2)" ( (binary_expression "*(int *)(iVar27 + 0x10) == 2" (pointer_expression "*(int *)(iVar27 + 0x10)" * (cast_expression "(int *)(iVar27 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x10)" ( (binary_expression "iVar27 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" { (expression_statement "(**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));" (call_expression "(**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4))" (parenthesized_expression "(**(code **)(pcVar40 + 0x38900))" ( (pointer_expression "**(code **)(pcVar40 + 0x38900)" * (pointer_expression "*(code **)(pcVar40 + 0x38900)" * (cast_expression "(code **)(pcVar40 + 0x38900)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38900)" ( (binary_expression "pcVar40 + 0x38900" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4))" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar27 + 4)" * (cast_expression "(undefined4 *)(iVar27 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 4)" ( (binary_expression "iVar27 + 4" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_00076738(iVar18,iVar27);" (call_expression "FUN_00076738(iVar18,iVar27)" identifier (argument_list "(iVar18,iVar27)" ( identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" else (compound_statement "{\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" { (expression_statement "*(undefined4 *)(iVar27 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar27 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar27 + 0x10)" * (cast_expression "(undefined4 *)(iVar27 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x10)" ( (binary_expression "iVar27 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) })) }) (else_clause "else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }" else (compound_statement "{\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }" { (if_statement "if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }" if (parenthesized_expression "(bVar21 == 0x5c)" ( (binary_expression "bVar21 == 0x5c" identifier == number_literal) )) (compound_statement "{\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }" { (if_statement "if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }" if (parenthesized_expression "(3 < (int)pbVar31)" ( (binary_expression "3 < (int)pbVar31" number_literal < (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }" { (expression_statement "pppppbVar32 = *(byte ******)(iVar18 + 0x25);" (assignment_expression "pppppbVar32 = *(byte ******)(iVar18 + 0x25)" identifier = (pointer_expression "*(byte ******)(iVar18 + 0x25)" * (cast_expression "(byte ******)(iVar18 + 0x25)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(iVar18 + 0x25)" ( (binary_expression "iVar18 + 0x25" identifier + number_literal) ))))) ;) (expression_statement "pppppbVar35 = &ppppbStack_e8;" (assignment_expression "pppppbVar35 = &ppppbStack_e8" identifier = (pointer_expression "&ppppbStack_e8" & identifier)) ;) (expression_statement "ppppbStack_e8 = (byte ****)pppppbVar32;" (assignment_expression "ppppbStack_e8 = (byte ****)pppppbVar32" identifier = (cast_expression "(byte ****)pppppbVar32" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);" (assignment_expression "iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0)" identifier = (call_expression "find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x4034)" * (cast_expression "(undefined4 *)(iVar18 + 0x4034)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4034)" ( (binary_expression "iVar18 + 0x4034" identifier + number_literal) )))) , identifier , number_literal )))) ;) (if_statement "if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" { (expression_statement "ppppbStack_e4 = (byte ****)pppppbVar32;" (assignment_expression "ppppbStack_e4 = (byte ****)pppppbVar32" identifier = (cast_expression "(byte ****)pppppbVar32" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);" (assignment_expression "iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0)" identifier = (call_expression "find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x4044)" * (cast_expression "(undefined4 *)(iVar18 + 0x4044)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4044)" ( (binary_expression "iVar18 + 0x4044" identifier + number_literal) )))) , identifier , number_literal )))) ;) (if_statement "if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (compound_statement "{\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }" { (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x4020" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "share_xchannel_failure(iVar18,iVar27);" (call_expression "share_xchannel_failure(iVar18,iVar27)" identifier (argument_list "(iVar18,iVar27)" ( identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" else (compound_statement "{\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" { (expression_statement "iVar11 = *(int *)(iVar18 + 0xc);" (assignment_expression "iVar11 = *(int *)(iVar18 + 0xc)" identifier = (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar41 = 0x5c;" (assignment_expression "uVar41 = 0x5c" identifier = number_literal) ;) (labeled_statement "LAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);" statement_identifier : (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar40 + 0x388fc)" * (pointer_expression "*(code **)(pcVar40 + 0x388fc)" * (cast_expression "(code **)(pcVar40 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x388fc)" ( (binary_expression "pcVar40 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0)" ( (pointer_expression "*(undefined4 *)(iVar11 + 0x14)" * (cast_expression "(undefined4 *)(iVar11 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar18 + 4)" * (cast_expression "(undefined4 *)(iVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) , identifier , identifier , identifier , number_literal ))) ;)) (expression_statement "del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);" (call_expression "del234(*(undefined4 *)(iVar18 + 0x4034),iVar22)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x4034),iVar22)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x4034)" * (cast_expression "(undefined4 *)(iVar18 + 0x4034)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4034)" ( (binary_expression "iVar18 + 0x4034" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(iVar22);" (call_expression "(**(code **)(pcVar40 + 0x38124))(iVar22)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(iVar22)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x4048)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x4048" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (if_statement "if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }" if (parenthesized_expression "(0x5b < bVar21)" ( (binary_expression "0x5b < bVar21" number_literal < identifier) )) (compound_statement "{\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }" { (if_statement "if (100 < bVar21) goto LAB_0007878c;" if (parenthesized_expression "(100 < bVar21)" ( (binary_expression "100 < bVar21" number_literal < identifier) )) (goto_statement "goto LAB_0007878c;" goto statement_identifier ;)) (goto_statement "goto LAB_00078844;" goto statement_identifier ;) })) (if_statement "if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }" if (parenthesized_expression "((int)pbVar31 < 0x10)" ( (binary_expression "(int)pbVar31 < 0x10" (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }" { (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x40f4)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x40f4" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "uVar30 = iVar18 + 0x25U & 3;" (assignment_expression "uVar30 = iVar18 + 0x25U & 3" identifier = (binary_expression "iVar18 + 0x25U & 3" (binary_expression "iVar18 + 0x25U" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar41 = *(undefined4 *)(iVar18 + 0x29);" (assignment_expression "uVar41 = *(undefined4 *)(iVar18 + 0x29)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x29)" * (cast_expression "(undefined4 *)(iVar18 + 0x29)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x29)" ( (binary_expression "iVar18 + 0x29" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = iVar18 + 0x28U & 3;" (assignment_expression "uVar23 = iVar18 + 0x28U & 3" identifier = (binary_expression "iVar18 + 0x28U & 3" (binary_expression "iVar18 + 0x28U" identifier + number_literal) & number_literal)) ;) (expression_statement "pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);" (assignment_expression "pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8)" identifier = (cast_expression "(byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8)" ( (binary_expression "(*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8" (binary_expression "(*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8" (parenthesized_expression "(*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8)" ( (binary_expression "*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8" (binary_expression "*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8" (pointer_expression "*(int *)((iVar18 + 0x25U) - uVar30)" * (cast_expression "(int *)((iVar18 + 0x25U) - uVar30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar18 + 0x25U) - uVar30)" ( (binary_expression "(iVar18 + 0x25U) - uVar30" (parenthesized_expression "(iVar18 + 0x25U)" ( (binary_expression "iVar18 + 0x25U" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar30 * 8" identifier * number_literal)) | (binary_expression "(uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8" (cast_expression "(uint)pppppbVar32" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "0xffffffffU >> (4 - uVar30) * 8" number_literal >> (binary_expression "(4 - uVar30) * 8" (parenthesized_expression "(4 - uVar30)" ( (binary_expression "4 - uVar30" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar23 + 1) * 8" number_literal << (binary_expression "(uVar23 + 1) * 8" (parenthesized_expression "(uVar23 + 1)" ( (binary_expression "uVar23 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8" (pointer_expression "*(uint *)((iVar18 + 0x28U) - uVar23)" * (cast_expression "(uint *)((iVar18 + 0x28U) - uVar23)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar18 + 0x28U) - uVar23)" ( (binary_expression "(iVar18 + 0x28U) - uVar23" (parenthesized_expression "(iVar18 + 0x28U)" ( (binary_expression "iVar18 + 0x28U" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar23) * 8" (parenthesized_expression "(3 - uVar23)" ( (binary_expression "3 - uVar23" number_literal - identifier) )) * number_literal))) )))) ;) (expression_statement "ppppbStack_e8 = (byte ****)pppppbVar32;" (assignment_expression "ppppbStack_e8 = (byte ****)pppppbVar32" identifier = (cast_expression "(byte ****)pppppbVar32" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);" (assignment_expression "iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8)" identifier = (call_expression "find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x4034)" * (cast_expression "(undefined4 *)(iVar18 + 0x4034)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4034)" ( (binary_expression "iVar18 + 0x4034" identifier + number_literal) )))) , (pointer_expression "&ppppbStack_e8" & identifier) )))) ;) (if_statement "if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }" { (expression_statement "ppppbStack_e4 = (byte ****)pppppbVar32;" (assignment_expression "ppppbStack_e4 = (byte ****)pppppbVar32" identifier = (cast_expression "(byte ****)pppppbVar32" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);" (assignment_expression "pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0)" identifier = (cast_expression "(byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (call_expression "find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x4044)" * (cast_expression "(undefined4 *)(iVar18 + 0x4044)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4044)" ( (binary_expression "iVar18 + 0x4044" identifier + number_literal) )))) , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal ))))) ;) (if_statement "if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;" if (parenthesized_expression "(pppppbVar35 == (byte *****)0x0)" ( (binary_expression "pppppbVar35 == (byte *****)0x0" identifier == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_0007927c;" goto statement_identifier ;)) (expression_statement "ppppbVar12 = *pppppbVar35;" (assignment_expression "ppppbVar12 = *pppppbVar35" identifier = (pointer_expression "*pppppbVar35" * identifier)) ;) }) (else_clause "else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }" else (compound_statement "{\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }" { (expression_statement "pppppbVar35 = (byte *****)0x0;" (assignment_expression "pppppbVar35 = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);" (assignment_expression "ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" identifier = (cast_expression "(byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38914))" ( (pointer_expression "**(code **)(pcVar40 + 0x38914)" * (pointer_expression "*(code **)(pcVar40 + 0x38914)" * (cast_expression "(code **)(pcVar40 + 0x38914)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38914)" ( (binary_expression "pcVar40 + 0x38914" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier ))))) ;) }))) (expression_statement "*(char *)(iVar18 + 0x2c) = (char)ppppbVar12;" (assignment_expression "*(char *)(iVar18 + 0x2c) = (char)ppppbVar12" (pointer_expression "*(char *)(iVar18 + 0x2c)" * (cast_expression "(char *)(iVar18 + 0x2c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2c)" ( (binary_expression "iVar18 + 0x2c" identifier + number_literal) )))) = (cast_expression "(char)ppppbVar12" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);" (assignment_expression "*(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18)" (pointer_expression "*(char *)(iVar18 + 0x29)" * (cast_expression "(char *)(iVar18 + 0x29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x29)" ( (binary_expression "iVar18 + 0x29" identifier + number_literal) )))) = (cast_expression "(char)((uint)ppppbVar12 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppppbVar12 >> 0x18)" ( (binary_expression "(uint)ppppbVar12 >> 0x18" (cast_expression "(uint)ppppbVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);" (assignment_expression "*(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10)" (pointer_expression "*(char *)(iVar18 + 0x2a)" * (cast_expression "(char *)(iVar18 + 0x2a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2a)" ( (binary_expression "iVar18 + 0x2a" identifier + number_literal) )))) = (cast_expression "(char)((uint)ppppbVar12 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppppbVar12 >> 0x10)" ( (binary_expression "(uint)ppppbVar12 >> 0x10" (cast_expression "(uint)ppppbVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);" (assignment_expression "*(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8)" (pointer_expression "*(char *)(iVar18 + 0x2b)" * (cast_expression "(char *)(iVar18 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2b)" ( (binary_expression "iVar18 + 0x2b" identifier + number_literal) )))) = (cast_expression "(char)((uint)ppppbVar12 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppppbVar12 >> 8)" ( (binary_expression "(uint)ppppbVar12 >> 8" (cast_expression "(uint)ppppbVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar30 = iVar18 + 0x31U & 3;" (assignment_expression "uVar30 = iVar18 + 0x31U & 3" identifier = (binary_expression "iVar18 + 0x31U & 3" (binary_expression "iVar18 + 0x31U" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar23 = iVar18 + 0x34U & 3;" (assignment_expression "uVar23 = iVar18 + 0x34U & 3" identifier = (binary_expression "iVar18 + 0x34U & 3" (binary_expression "iVar18 + 0x34U" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);" (assignment_expression "uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8)" identifier = (call_expression "FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8)" identifier (argument_list "(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8)" ( (binary_expression "iVar18 + 0x4038" identifier + number_literal) , (binary_expression "iVar18 + 0x403c" identifier + number_literal) , identifier , identifier , identifier , number_literal , (binary_expression "(*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8" (binary_expression "(*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8" (parenthesized_expression "(*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8)" ( (binary_expression "*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8" (binary_expression "*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8" (pointer_expression "*(int *)((iVar18 + 0x31U) - uVar30)" * (cast_expression "(int *)((iVar18 + 0x31U) - uVar30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar18 + 0x31U) - uVar30)" ( (binary_expression "(iVar18 + 0x31U) - uVar30" (parenthesized_expression "(iVar18 + 0x31U)" ( (binary_expression "iVar18 + 0x31U" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar30 * 8" identifier * number_literal)) | (binary_expression "in_t3 & 0xffffffffU >> (4 - uVar30) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar30) * 8" number_literal >> (binary_expression "(4 - uVar30) * 8" (parenthesized_expression "(4 - uVar30)" ( (binary_expression "4 - uVar30" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar23 + 1) * 8" number_literal << (binary_expression "(uVar23 + 1) * 8" (parenthesized_expression "(uVar23 + 1)" ( (binary_expression "uVar23 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8" (pointer_expression "*(uint *)((iVar18 + 0x34U) - uVar23)" * (cast_expression "(uint *)((iVar18 + 0x34U) - uVar23)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar18 + 0x34U) - uVar23)" ( (binary_expression "(iVar18 + 0x34U) - uVar23" (parenthesized_expression "(iVar18 + 0x34U)" ( (binary_expression "iVar18 + 0x34U" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar23) * 8" (parenthesized_expression "(3 - uVar23)" ( (binary_expression "3 - uVar23" number_literal - identifier) )) * number_literal))) )))) ;) (if_statement "if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }" { (expression_statement "iVar11 = *(int *)(iVar18 + 0xc);" (assignment_expression "iVar11 = *(int *)(iVar18 + 0xc)" identifier = (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar41 = 0x5b;" (assignment_expression "uVar41 = 0x5b" identifier = number_literal) ;) (goto_statement "goto LAB_000786e4;" goto statement_identifier ;) })) (if_statement "if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }" if (parenthesized_expression "(pppppbVar35 != (byte *****)0x0)" ( (binary_expression "pppppbVar35 != (byte *****)0x0" identifier != (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }" { (if_statement "if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }" if (parenthesized_expression "(*(uint *)(iVar18 + 0x2d) < 0x100)" ( (binary_expression "*(uint *)(iVar18 + 0x2d) < 0x100" (pointer_expression "*(uint *)(iVar18 + 0x2d)" * (cast_expression "(uint *)(iVar18 + 0x2d)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d)" ( (binary_expression "iVar18 + 0x2d" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }" { (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d))" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d))" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d))" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x408c" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(uint *)(iVar18 + 0x2d)" * (cast_expression "(uint *)(iVar18 + 0x2d)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d)" ( (binary_expression "iVar18 + 0x2d" identifier + number_literal) )))) )))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);" (call_expression "share_xchannel_confirmation(iVar18,pppppbVar35,uVar41)" identifier (argument_list "(iVar18,pppppbVar35,uVar41)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);" (call_expression "FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x4040)" * (cast_expression "(undefined4 *)(iVar18 + 0x4040)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4040)" ( (binary_expression "iVar18 + 0x4040" identifier + number_literal) )))) , (binary_expression "iVar18 + 0x4044" identifier + number_literal) , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;)) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) ))))) ;) (if_statement "if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }" if (parenthesized_expression "(3 < (int)pbVar31)" ( (binary_expression "3 < (int)pbVar31" number_literal < (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }" { (expression_statement "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);" (assignment_expression "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" identifier = (call_expression "FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" identifier (argument_list "(iVar27,pbVar31,0,&ppppbStack_e8)" ( identifier , identifier , number_literal , (pointer_expression "&ppppbStack_e8" & identifier) )))) ;) (if_statement "if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }" if (parenthesized_expression "(((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8))" ( (binary_expression "((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)" (parenthesized_expression "((iVar22 == 0) || ((int)ppppbStack_e8 < 0))" ( (binary_expression "(iVar22 == 0) || ((int)ppppbStack_e8 < 0)" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "((int)ppppbStack_e8 < 0)" ( (binary_expression "(int)ppppbStack_e8 < 0" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) || (parenthesized_expression "(pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)" ( (comma_expression "pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8" (assignment_expression "pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27)" identifier = (cast_expression "(byte *****)((int)ppppbStack_e8 + iVar27)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)ppppbStack_e8 + iVar27)" ( (binary_expression "(int)ppppbStack_e8 + iVar27" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) , (binary_expression "(int)(pppppbVar35 + -4) <= (int)ppppbStack_e8" (cast_expression "(int)(pppppbVar35 + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pppppbVar35 + -4)" ( (binary_expression "pppppbVar35 + -4" identifier + number_literal) ))) <= (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }" { (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00078e80;" goto statement_identifier ;) })) (expression_statement "pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);" (assignment_expression "pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26)" identifier = (cast_expression "(byte *)((int)ppppbStack_e8 + iVar18 + 0x26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppbStack_e8 + iVar18 + 0x26)" ( (binary_expression "(int)ppppbStack_e8 + iVar18 + 0x26" (binary_expression "(int)ppppbStack_e8 + iVar18" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);" (assignment_expression "ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27)" identifier = (cast_expression "(byte ****)((int)ppppbStack_e8 + iVar18 + 0x27)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbStack_e8 + iVar18 + 0x27)" ( (binary_expression "(int)ppppbStack_e8 + iVar18 + 0x27" (binary_expression "(int)ppppbStack_e8 + iVar18" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);" (assignment_expression "pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28)" identifier = (cast_expression "(byte *)((int)ppppbStack_e8 + iVar18 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppbStack_e8 + iVar18 + 0x28)" ( (binary_expression "(int)ppppbStack_e8 + iVar18 + 0x28" (binary_expression "(int)ppppbStack_e8 + iVar18" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);" (assignment_expression "pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8)" identifier = (cast_expression "(byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8)" ( (binary_expression "(uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8" (binary_expression "(uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28" (binary_expression "(uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10" (binary_expression "(uint)*(byte *)pppppbVar32 << 0x18" (binary_expression "(uint)*(byte *)pppppbVar32" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)pppppbVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) | (binary_expression "(uint)*pbVar16 << 0x10" (binary_expression "(uint)*pbVar16" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal)) | (binary_expression "(uint)*pbVar28" (parenthesized_expression "(uint)" ( identifier )) * identifier)) | (binary_expression "(uint)*(byte *)ppppbStack_108 << 8" (binary_expression "(uint)*(byte *)ppppbStack_108" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)ppppbStack_108" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal)) )))) ;) (expression_statement "uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);" (assignment_expression "uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38914))" ( (pointer_expression "**(code **)(pcVar40 + 0x38914)" * (pointer_expression "*(code **)(pcVar40 + 0x38914)" * (cast_expression "(code **)(pcVar40 + 0x38914)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38914)" ( (binary_expression "pcVar40 + 0x38914" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier )))) ;) (expression_statement "FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);" (call_expression "FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8)" identifier (argument_list "(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8)" ( (binary_expression "iVar18 + 0x4038" identifier + number_literal) , (binary_expression "iVar18 + 0x403c" identifier + number_literal) , identifier , identifier , number_literal , number_literal , (binary_expression "(uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8" (binary_expression "(uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb)" (binary_expression "(uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10" (binary_expression "(uint)*(byte *)(pppppbVar32 + 2) << 0x18" (binary_expression "(uint)*(byte *)(pppppbVar32 + 2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(pppppbVar32 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppbVar32 + 2)" ( (binary_expression "pppppbVar32 + 2" identifier + number_literal) )))) << number_literal) | (binary_expression "(uint)*(byte *)((int)pppppbVar32 + 9) << 0x10" (binary_expression "(uint)*(byte *)((int)pppppbVar32 + 9)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pppppbVar32 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar32 + 9)" ( (binary_expression "(int)pppppbVar32 + 9" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) << number_literal)) | (binary_expression "(uint)*(byte *)((int)pppppbVar32 + 0xb)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pppppbVar32 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar32 + 0xb)" ( (binary_expression "(int)pppppbVar32 + 0xb" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) | (binary_expression "(uint)*(byte *)((int)pppppbVar32 + 10) << 8" (binary_expression "(uint)*(byte *)((int)pppppbVar32 + 10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pppppbVar32 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar32 + 10)" ( (binary_expression "(int)pppppbVar32 + 10" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) << number_literal)) ))) ;) (expression_statement "*(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);" (assignment_expression "*(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18)" (pointer_expression "*(byte *)pppppbVar32" * (cast_expression "(byte *)pppppbVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (call_expression "(byte)((uint)uVar41 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)uVar41 >> 0x18)" ( (binary_expression "(uint)uVar41 >> 0x18" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*pbVar16 = (byte)((uint)uVar41 >> 0x10);" (assignment_expression "*pbVar16 = (byte)((uint)uVar41 >> 0x10)" (pointer_expression "*pbVar16" * identifier) = (call_expression "(byte)((uint)uVar41 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)uVar41 >> 0x10)" ( (binary_expression "(uint)uVar41 >> 0x10" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);" (assignment_expression "*(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8)" (pointer_expression "*(byte *)ppppbStack_108" * (cast_expression "(byte *)ppppbStack_108" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (call_expression "(byte)((uint)uVar41 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)uVar41 >> 8)" ( (binary_expression "(uint)uVar41 >> 8" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*pbVar28 = (byte)uVar41;" (assignment_expression "*pbVar28 = (byte)uVar41" (pointer_expression "*pbVar28" * identifier) = (cast_expression "(byte)uVar41" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar40 + 0x388fc)" * (pointer_expression "*(code **)(pcVar40 + 0x388fc)" * (cast_expression "(code **)(pcVar40 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x388fc)" ( (binary_expression "pcVar40 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar18 + 4)" * (cast_expression "(undefined4 *)(iVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (labeled_statement "LAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);" statement_identifier : (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(iVar22 + -0x4114)" ( (binary_expression "iVar22 + -0x4114" identifier + number_literal) )))) ;)) (labeled_statement "LAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }" statement_identifier : (while_statement "while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }" while (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (compound_statement "{\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }" { (expression_statement "(**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);" (call_expression "(**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38a34))" ( (pointer_expression "**(code **)(pcVar40 + 0x38a34)" * (pointer_expression "*(code **)(pcVar40 + 0x38a34)" * (cast_expression "(code **)(pcVar40 + 0x38a34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38a34)" ( (binary_expression "pcVar40 + 0x38a34" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3f38" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x42c4" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3e30" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);" statement_identifier : (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x40c8" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier )))) ;)) }))) (expression_statement "FUN_00077910(iVar18,iVar27);" (call_expression "FUN_00077910(iVar18,iVar27)" identifier (argument_list "(iVar18,iVar27)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(iVar27);" (call_expression "(**(code **)(pcVar40 + 0x38124))(iVar27)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(iVar27)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (expression_statement "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);" (assignment_expression "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x415c" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (labeled_statement "LAB_000781e4:\n      FUN_00077910(iVar18,uVar41);" statement_identifier : (expression_statement "FUN_00077910(iVar18,uVar41);" (call_expression "FUN_00077910(iVar18,uVar41)" identifier (argument_list "(iVar18,uVar41)" ( identifier , identifier ))) ;)) (expression_statement "(**(code **)(pcVar40 + 0x38124))(uVar41);" (call_expression "(**(code **)(pcVar40 + 0x38124))(uVar41)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(uVar41)" ( identifier ))) ;) (expression_statement "param_1 = pbVar25;" (assignment_expression "param_1 = pbVar25" identifier = identifier) ;) (labeled_statement "LAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(iVar18 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x10)" * (cast_expression "(undefined4 *)(iVar18 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) )))) = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "uVar30 = *(uint *)(iVar18 + 0x4030);" (assignment_expression "uVar30 = *(uint *)(iVar18 + 0x4030)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x4030)" * (cast_expression "(uint *)(iVar18 + 0x4030)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) ))))) ;) (expression_statement "bVar21 = *pbVar25;" (assignment_expression "bVar21 = *pbVar25" identifier = (pointer_expression "*pbVar25" * identifier)) ;) (expression_statement "pbVar34 = pbVar31 + -1;" (assignment_expression "pbVar34 = pbVar31 + -1" identifier = (binary_expression "pbVar31 + -1" identifier + number_literal)) ;) (expression_statement "pbVar28 = pbVar25 + 1;" (assignment_expression "pbVar28 = pbVar25 + 1" identifier = (binary_expression "pbVar25 + 1" identifier + number_literal)) ;) (if_statement "if (bVar21 == 10) {\nLAB_0007855c:\n    pbVar25 = pbVar28;\n    if (0x2d < uVar30) {\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }\n    uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }" if (parenthesized_expression "(bVar21 == 10)" ( (binary_expression "bVar21 == 10" identifier == number_literal) )) (compound_statement "{\nLAB_0007855c:\n    pbVar25 = pbVar28;\n    if (0x2d < uVar30) {\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }\n    uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }" { (labeled_statement "LAB_0007855c:\n    pbVar25 = pbVar28;" statement_identifier : (expression_statement "pbVar25 = pbVar28;" (assignment_expression "pbVar25 = pbVar28" identifier = identifier) ;)) (if_statement "if (0x2d < uVar30) {\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }" if (parenthesized_expression "(0x2d < uVar30)" ( (binary_expression "0x2d < uVar30" number_literal < identifier) )) (compound_statement "{\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }" { (expression_statement "pppppbVar32 = (byte *****)(iVar18 + 0x20);" (assignment_expression "pppppbVar32 = (byte *****)(iVar18 + 0x20)" identifier = (cast_expression "(byte *****)(iVar18 + 0x20)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) )))) ;) (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38bf8))" ( (pointer_expression "**(code **)(pcVar40 + 0x38bf8)" * (pointer_expression "*(code **)(pcVar40 + 0x38bf8)" * (cast_expression "(code **)(pcVar40 + 0x38bf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38bf8)" ( (binary_expression "pcVar40 + 0x38bf8" identifier + number_literal) ))))) )) (argument_list "(pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e)" ( identifier , (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3e10" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }" { (if_statement "if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }" if (parenthesized_expression "((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r'))" ( (binary_expression "(0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')" (parenthesized_expression "(0 < (int)uVar30)" ( (binary_expression "0 < (int)uVar30" number_literal < (cast_expression "(int)uVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')" ( (comma_expression "uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r'" (assignment_expression "uVar23 = uVar30 - 1" identifier = (binary_expression "uVar30 - 1" identifier - number_literal)) , (binary_expression "*(char *)(iVar18 + uVar23 + 0x20) == '\r'" (pointer_expression "*(char *)(iVar18 + uVar23 + 0x20)" * (cast_expression "(char *)(iVar18 + uVar23 + 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + uVar23 + 0x20)" ( (binary_expression "iVar18 + uVar23 + 0x20" (binary_expression "iVar18 + uVar23" identifier + identifier) + number_literal) )))) == (char_literal "'\r'" ' escape_sequence '))) ))) )) (compound_statement "{\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }" { (expression_statement "*(uint *)(iVar18 + 0x4030) = uVar23;" (assignment_expression "*(uint *)(iVar18 + 0x4030) = uVar23" (pointer_expression "*(uint *)(iVar18 + 0x4030)" * (cast_expression "(uint *)(iVar18 + 0x4030)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar30 = uVar23;" (assignment_expression "uVar30 = uVar23" identifier = identifier) ;) })) (expression_statement "(**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);" (call_expression "(**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388f4))" ( (pointer_expression "**(code **)(pcVar40 + 0x388f4)" * (pointer_expression "*(code **)(pcVar40 + 0x388f4)" * (cast_expression "(code **)(pcVar40 + 0x388f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x388f4)" ( (binary_expression "pcVar40 + 0x388f4" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar18 + 4)" * (cast_expression "(undefined4 *)(iVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x417c" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x18) = 1;" (assignment_expression "*(undefined4 *)(iVar18 + 0x18) = 1" (pointer_expression "*(undefined4 *)(iVar18 + 0x18)" * (cast_expression "(undefined4 *)(iVar18 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) })) (expression_statement "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);" (assignment_expression "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x41ac)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x41ac" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000781e4;" goto statement_identifier ;) })) (expression_statement "pbVar16 = pbVar31;" (assignment_expression "pbVar16 = pbVar31" identifier = identifier) ;) (if_statement "if (uVar30 < 0x4010) {\n    uVar30 = uVar30 + 1;\n    pbVar26 = pbVar25 + (int)pbVar34;\n    pbVar34 = pbVar31;\n    param_1 = pbVar28;\n    do {\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    } while (uVar30 != 0x4011);\n  }" if (parenthesized_expression "(uVar30 < 0x4010)" ( (binary_expression "uVar30 < 0x4010" identifier < number_literal) )) (compound_statement "{\n    uVar30 = uVar30 + 1;\n    pbVar26 = pbVar25 + (int)pbVar34;\n    pbVar34 = pbVar31;\n    param_1 = pbVar28;\n    do {\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    } while (uVar30 != 0x4011);\n  }" { (expression_statement "uVar30 = uVar30 + 1;" (assignment_expression "uVar30 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) (expression_statement "pbVar26 = pbVar25 + (int)pbVar34;" (assignment_expression "pbVar26 = pbVar25 + (int)pbVar34" identifier = (binary_expression "pbVar25 + (int)pbVar34" identifier + (cast_expression "(int)pbVar34" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar34 = pbVar31;" (assignment_expression "pbVar34 = pbVar31" identifier = identifier) ;) (expression_statement "param_1 = pbVar28;" (assignment_expression "param_1 = pbVar28" identifier = identifier) ;) (do_statement "do {\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    } while (uVar30 != 0x4011);" do (compound_statement "{\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    }" { (expression_statement "*(uint *)(iVar18 + 0x4030) = uVar30;" (assignment_expression "*(uint *)(iVar18 + 0x4030) = uVar30" (pointer_expression "*(uint *)(iVar18 + 0x4030)" * (cast_expression "(uint *)(iVar18 + 0x4030)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;" (assignment_expression "*(byte *)(iVar18 + uVar30 + 0x1f) = bVar21" (pointer_expression "*(byte *)(iVar18 + uVar30 + 0x1f)" * (cast_expression "(byte *)(iVar18 + uVar30 + 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + uVar30 + 0x1f)" ( (binary_expression "iVar18 + uVar30 + 0x1f" (binary_expression "iVar18 + uVar30" identifier + identifier) + number_literal) )))) = identifier) ;) (if_statement "if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;" if (parenthesized_expression "(pbVar25 + (int)pbVar31 == param_1)" ( (binary_expression "pbVar25 + (int)pbVar31 == param_1" (binary_expression "pbVar25 + (int)pbVar31" identifier + (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier)) == identifier) )) (goto_statement "goto LAB_000781c4;" goto statement_identifier ;)) (expression_statement "pbVar34 = pbVar26 + -(int)param_1;" (assignment_expression "pbVar34 = pbVar26 + -(int)param_1" identifier = (binary_expression "pbVar26 + -(int)param_1" identifier + (unary_expression "-(int)param_1" - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar28 = param_1 + 1;" (assignment_expression "pbVar28 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "bVar21 = *param_1;" (assignment_expression "bVar21 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (bVar21 == 10) goto LAB_0007855c;" if (parenthesized_expression "(bVar21 == 10)" ( (binary_expression "bVar21 == 10" identifier == number_literal) )) (goto_statement "goto LAB_0007855c;" goto statement_identifier ;)) (expression_statement "uVar30 = uVar30 + 1;" (assignment_expression "uVar30 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) (expression_statement "pbVar16 = pbVar34;" (assignment_expression "pbVar16 = pbVar34" identifier = identifier) ;) (expression_statement "param_1 = pbVar28;" (assignment_expression "param_1 = pbVar28" identifier = identifier) ;) }) while (parenthesized_expression "(uVar30 != 0x4011)" ( (binary_expression "uVar30 != 0x4011" identifier != number_literal) )) ;) })) (expression_statement "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc);" (assignment_expression "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x41cc)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x41cc" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pbVar34 = pbVar16;" (assignment_expression "pbVar34 = pbVar16" identifier = identifier) ;) (expression_statement "pbVar25 = pbVar28;" (assignment_expression "pbVar25 = pbVar28" identifier = identifier) ;) (goto_statement "goto LAB_000781e4;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid share_xchannel_confirmation\n               (ssh_sharing_connstate *cs,share_xchannel *xc,share_channel *chan,\n               uint downstream_window)\n\n{\n  byte bVar1;\n  char cVar2;\n  byte bVar3;\n  byte bVar4;\n  byte bVar5;\n  uchar uVar6;\n  uchar uVar7;\n  uchar uVar8;\n  uchar uVar9;\n  undefined1 uVar10;\n  undefined1 uVar11;\n  undefined1 uVar12;\n  bool bVar13;\n  plug_function_table **pppVar14;\n  plug_function_table **pppVar15;\n  plug_function_table *ppVar16;\n  int iVar17;\n  char *pcVar18;\n  uint upstream_id;\n  ssh_sharing_state *psVar19;\n  Socket ppsVar20;\n  int iVar21;\n  int iVar22;\n  void *pvVar23;\n  undefined1 *puVar24;\n  undefined1 *puVar25;\n  share_channel *psVar26;\n  share_forwarding *e;\n  share_forwarding *psVar27;\n  share_globreq *psVar28;\n  undefined4 *puVar29;\n  ssh_sharing_connstate *psVar30;\n  ssh_sharing_connstate *cs_00;\n  uchar uVar32;\n  tree234 *t;\n  share_globreq *psVar31;\n  share_xchannel *psVar33;\n  ssh_sharing_connstate *psVar34;\n  uint uVar35;\n  uchar *puVar36;\n  ssh_sharing_connstate *psVar37;\n  undefined4 uVar38;\n  int iVar39;\n  uint *puVar40;\n  uint uVar41;\n  uint in_t3;\n  share_xchannel_message *psVar42;\n  share_channel *unaff_s1;\n  int unaff_s2;\n  ssh_sharing_connstate *psVar43;\n  int *unaff_s3;\n  Socket *unaff_s4;\n  uint *puVar44;\n  uint *puVar45;\n  ssh_sharing_connstate *psVar46;\n  ssh_sharing_connstate *psVar47;\n  uchar *puVar48;\n  uchar *puVar49;\n  int in_t9;\n  code *pcVar50;\n  int *piVar51;\n  code *pcVar52;\n  ssh_sharing_connstate *psStack_108;\n  ssh_sharing_connstate *psStack_e8;\n  ssh_sharing_connstate *psStack_e4;\n  Socket ppsStack_e0;\n  plug_function_table *ppStack_c0;\n  int iStack_bc;\n  share_xchannel *psStack_b8;\n  ssh_sharing_connstate *psStack_b4;\n  ssh_sharing_connstate *psStack_b0;\n  int *piStack_ac;\n  Socket *pppsStack_a8;\n  ssh_sharing_connstate *psStack_a4;\n  ssh_sharing_connstate *psStack_a0;\n  int iStack_9c;\n  share_xchannel *psStack_98;\n  code *pcStack_94;\n  uchar auStack_80 [4];\n  int iStack_7c;\n  code *pcStack_78;\n  uint uStack_70;\n  plug_function_table *ppStack_6c;\n  share_xchannel_message *psStack_68;\n  share_channel *psStack_64;\n  int iStack_60;\n  code *pcStack_5c;\n  uchar window_adjust [8];\n  \n  psVar46 = *(ssh_sharing_connstate **)(in_t9 + 0x38e6c);\n  psVar42 = xc->msghead;\n  ppVar16 = psVar46->fn;\n  if (psVar42 != (share_xchannel_message *)0x0) {\n    unaff_s4 = &cs->sock;\n    unaff_s3 = &chan->downstream_maxpkt;\n    unaff_s2 = *(int *)(in_t9 + 0x38ab8) + 0x68e4;\n    do {\n      iVar39 = psVar42->datalen;\n      puVar36 = psVar42->data;\n      xc->msghead = psVar42->next;\n      if (3 < iVar39) {\n        *puVar36 = *(uchar *)&chan->downstream_id;\n        psVar42->data[1] = (uchar)*(undefined2 *)&chan->downstream_id;\n        psVar42->data[2] = (uchar)(chan->downstream_id >> 8);\n        psVar42->data[3] = (uchar)chan->downstream_id;\n        puVar36 = psVar42->data;\n        iVar39 = psVar42->datalen;\n      }\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)unaff_s4,psVar42->type,puVar36,iVar39,chan,\n                 (share_channel *)unaff_s3);\n      (**(code **)(&DAT_00038380 + in_t9))(psVar42);\n      psVar42 = xc->msghead;\n      unaff_s1 = chan;\n    } while (psVar42 != (share_xchannel_message *)0x0);\n  }\n  window_adjust._0_4_ = xc->server_id;\n  iVar39 = downstream_window - xc->window;\n  psVar30 = (ssh_sharing_connstate *)cs->parent->ssh;\n  psVar33 = (share_xchannel *)cs->id;\n  window_adjust[4] = (uchar)((uint)iVar39 >> 0x18);\n  window_adjust[6] = (uchar)((uint)iVar39 >> 8);\n  window_adjust[5] = (uchar)((uint)iVar39 >> 0x10);\n  window_adjust[7] = (uchar)iVar39;\n  (**(code **)(in_t9 + 0x38b58))(psVar30,psVar33,0x5d,window_adjust);\n  if (ppVar16 == psVar46->fn) {\n    return;\n  }\n  pcVar50 = *(code **)(in_t9 + 0x38e40);\n  pcVar52 = share_xchannel_failure;\n  (*pcVar50)();\n  pcStack_78 = pcVar50 + 0x40180;\n  uStack_70 = psVar33->server_id;\n  psVar37 = (ssh_sharing_connstate *)&DAT_00000061;\n  puVar44 = &uStack_70;\n  psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x38ccc);\n  iStack_7c = *(int *)(pcVar50 + 0x38200) + -0x4248;\n  ppStack_6c = psVar43->fn;\n  auStack_80[0] = '\0';\n  auStack_80[1] = '\0';\n  auStack_80[2] = '\0';\n  auStack_80[3] = '\x04';\n  psStack_68 = psVar42;\n  psStack_64 = unaff_s1;\n  iStack_60 = unaff_s2;\n  pcStack_5c = pcVar52;\n  (**(code **)(pcVar50 + 0x389b8))(psVar30->parent->ssh,psVar30->id);\n  psVar33->live = 0;\n  cs_00 = psVar30;\n  share_dead_xchannel_respond(psVar30,psVar33);\n  if (ppStack_6c == psVar43->fn) {\n    return;\n  }\n  pcVar50 = *(code **)(pcStack_78 + -0x74e0);\n  pcVar52 = share_receive;\n  (*pcVar50)();\n  iVar17 = cs_00->crLine;\n  piVar51 = *(int **)(pcVar50 + 0x38c10);\n  iStack_bc = *piVar51;\n  psVar47 = cs;\n  psStack_b8 = psVar33;\n  psStack_b4 = psVar30;\n  psStack_b0 = psVar43;\n  piStack_ac = unaff_s3;\n  pppsStack_a8 = unaff_s4;\n  psStack_a4 = cs;\n  psStack_a0 = psVar46;\n  iStack_9c = iVar39;\n  psStack_98 = xc;\n  pcStack_94 = pcVar52;\n  if (iVar17 != 0x709) {\n    if (0x709 < iVar17) {\n      puVar45 = puVar44;\n      if (iVar17 == 0x72e) goto LAB_000784dc;\n      if (iVar17 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar17 != 0) goto LAB_00078210;\n    cs_00->recvlen = 0;\n  }\n  if (puVar44 == (uint *)0x0) {\nLAB_000781c4:\n    cs_00->crLine = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar51) {\n        return;\n      }\n      (**(code **)(pcVar50 + 0x38be4))();\n      puVar45 = puVar44;\n      psVar37 = psVar47;\nLAB_00078f28:\n      ppStack_c0 = psStack_108->fn;\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,(share_channel *)0x0,\n                 (share_channel *)0xc);\n      (**(code **)(pcVar50 + 0x38124))(psVar46);\n      cs_00->recvlen = 0;\nLAB_000784dc:\n      psVar30 = (ssh_sharing_connstate *)((int)puVar45 + (int)(psVar37->recvbuf + -0x20));\n      psVar47 = psVar37;\n      do {\n        puVar44 = (uint *)((int)psVar30 + (-1 - (int)psVar47));\n        if (psVar47 == psVar30) {\n          cs_00->crLine = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar39 = cs_00->recvlen;\n        psVar37 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);\n        iVar17 = iVar39 + 1;\n        bVar1 = *(byte *)&psVar47->fn;\n        in_t3 = (uint)bVar1;\n        cs_00->recvlen = iVar17;\n        cs_00->recvbuf[iVar39] = bVar1;\n        psVar47 = psVar37;\n      } while (iVar17 < 4);\n      iVar39 = (**(code **)(pcVar50 + 0x38248))(*(int *)cs_00->recvbuf + 4);\n      cs_00->curr_packetlen = iVar39;\n      puVar45 = puVar44;\n      if (iVar39 - 5U < 0x400c) {\n        psVar46 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (psVar47 = psVar37, (int)psVar46 < iVar39) {\nLAB_00078104:\n          if (puVar45 == (uint *)0x0) {\n            cs_00->crLine = 0x73b;\n            puVar44 = (uint *)0x0;\n            goto LAB_00078214;\n          }\n          iVar39 = cs_00->recvlen;\n          uVar32 = *(uchar *)&psVar37->fn;\n          psVar37 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);\n          psVar46 = (ssh_sharing_connstate *)(iVar39 + 1);\n          cs_00->recvlen = (int)psVar46;\n          cs_00->recvbuf[iVar39] = uVar32;\n          puVar45 = (uint *)((int)puVar45 + -1);\n          iVar39 = cs_00->curr_packetlen;\n        }\n        bVar1 = cs_00->recvbuf[4];\n        puVar36 = cs_00->recvbuf + 5;\n        puVar25 = (undefined1 *)((int)&psVar46[-1].globreq_head + 3);\n        if (bVar1 != 0x5a) {\n          if (bVar1 < 0x5b) {\n            if (bVar1 != 2) {\n              if (2 < bVar1) {\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }\n              if (bVar1 != 1) {\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }\n              (*(*cs_00->sock)->close)(cs_00->sock);\n              cs_00->sock = (Socket)0x0;\n              share_try_cleanup(cs_00);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3);\n            if ((bVar1 == 0x62) &&\n               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)) {\n              psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);\n              iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0);\n              psVar30 = psStack_e8;\n              if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0);\n            if ((bVar1 == 0x61) && (3 < (int)puVar25)) {\n              ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar26 != (share_channel *)0x0) {\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar1 == 0x5c) {\n              if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar1) {\n              if (100 < bVar1) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)puVar25 < 0x10) {\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar41 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar35 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar43 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8);\n            psStack_e8 = psVar43;\n            pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0);\n            if (pvVar23 == (void *)0x0) {\n              psStack_e4 = psVar43;\n              psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;\n              ppVar16 = psVar46->fn;\n            }\n            else {\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)ppVar16;\n            cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8);\n            uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8));\n            if (pvVar23 != (void *)0x0) {\n              psVar19 = cs_00->parent;\n              uVar38 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (psVar46 != (ssh_sharing_connstate *)0x0) {\n              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\n        iVar39 = *(int *)(pcVar50 + 0x38144);\n        if (3 < (int)puVar25) {\n          iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n          if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n             (psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),\n             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8)) {\n            iVar39 = *(int *)(pcVar50 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pppVar14 = &psStack_e8->fn;\n          pppVar15 = &psStack_e8->fn;\n          psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)((int)&psStack_e8->fn + 2));\n          psVar46 = (ssh_sharing_connstate *)\n                    ((uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8)\n          ;\n          uVar41 = (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n          share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                            (uint)&cs_00->channels_by_server,(uint)psVar46,uVar41,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8));\n          *(char *)&psVar43->fn = (char)(uVar41 >> 0x18);\n          puVar36[(int)((int)pppVar14 + 1)] = (byte)(uVar41 >> 0x10);\n          *(char *)&psStack_108->fn = (char)(uVar41 >> 8);\n          puVar36[(int)((int)pppVar15 + 3)] = (byte)uVar41;\n          (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,0x5a,puVar36,puVar25,0);\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(iVar39 + -0x4114);\nLAB_000787a4:\n        while (pcVar18 == (char *)0x0) {\n          (**(code **)(pcVar50 + 0x38a34))\n                    (*(int *)(pcVar50 + 0x38144) + -0x3f38,*(int *)(pcVar50 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar50 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43);\n        }\n        share_disconnect(cs_00,pcVar18);\n        (**(code **)(pcVar50 + 0x38124))(pcVar18);\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }\n      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                  (*(int *)(pcVar50 + 0x38144) + -0x415c,iVar39);\nLAB_000781e4:\n      share_disconnect(cs_00,pcVar18);\n      (**(code **)(pcVar50 + 0x38124))(pcVar18);\n      puVar44 = puVar45;\n      psVar47 = psVar37;\nLAB_00078210:\n      cs_00->crLine = 0;\n    } while( true );\n  }\n  uVar41 = cs_00->recvlen;\n  uVar32 = *(uchar *)&psVar37->fn;\n  puVar40 = (uint *)((int)puVar44 + -1);\n  psVar30 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);\n  puVar45 = puVar40;\n  if (uVar32 == '\n') {\nLAB_0007855c:\n    psVar37 = psVar30;\n    if (0x2d < uVar41) {\n      psVar43 = (ssh_sharing_connstate *)cs_00->recvbuf;\n      iVar39 = (**(code **)(pcVar50 + 0x38bf8))(psVar43,*(int *)(pcVar50 + 0x38144) + -0x3e10,0x2e);\n      if (iVar39 == 0) {\n        if ((0 < (int)uVar41) && (cs_00->recvbuf[uVar41 - 1] == '\r')) {\n          cs_00->recvlen = uVar41 - 1;\n          uVar41 = uVar41 - 1;\n        }\n        (**(code **)(pcVar50 + 0x388f4))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(pcVar50 + 0x38144) + -0x417c,uVar41,psVar43\n                  );\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }\n    }\n    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }\n  psVar34 = (ssh_sharing_connstate *)((int)puVar44 + (int)(psVar37->recvbuf + -0x20));\n  if (uVar41 < 0x4010) {\n    uVar41 = uVar41 + 1;\n    psVar47 = psVar30;\n    do {\n      cs_00->recvlen = uVar41;\n      cs_00->recvbuf[uVar41 - 1] = uVar32;\n      if (psVar34 == psVar47) goto LAB_000781c4;\n      puVar44 = (uint *)((int)puVar40 + ((int)psVar37 - (int)psVar47));\n      psVar30 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);\n      uVar32 = *(uchar *)&psVar47->fn;\n      puVar45 = puVar44;\n      if (uVar32 == '\n') goto LAB_0007855c;\n      uVar41 = uVar41 + 1;\n      psVar47 = psVar30;\n    } while (uVar41 != 0x4011);\n  }\n  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41cc);\n  puVar45 = puVar44;\n  psVar37 = psVar30;\n  goto LAB_000781e4;\n}\n\n" comment (function_definition "void share_xchannel_confirmation\n               (ssh_sharing_connstate *cs,share_xchannel *xc,share_channel *chan,\n               uint downstream_window)\n\n{\n  byte bVar1;\n  char cVar2;\n  byte bVar3;\n  byte bVar4;\n  byte bVar5;\n  uchar uVar6;\n  uchar uVar7;\n  uchar uVar8;\n  uchar uVar9;\n  undefined1 uVar10;\n  undefined1 uVar11;\n  undefined1 uVar12;\n  bool bVar13;\n  plug_function_table **pppVar14;\n  plug_function_table **pppVar15;\n  plug_function_table *ppVar16;\n  int iVar17;\n  char *pcVar18;\n  uint upstream_id;\n  ssh_sharing_state *psVar19;\n  Socket ppsVar20;\n  int iVar21;\n  int iVar22;\n  void *pvVar23;\n  undefined1 *puVar24;\n  undefined1 *puVar25;\n  share_channel *psVar26;\n  share_forwarding *e;\n  share_forwarding *psVar27;\n  share_globreq *psVar28;\n  undefined4 *puVar29;\n  ssh_sharing_connstate *psVar30;\n  ssh_sharing_connstate *cs_00;\n  uchar uVar32;\n  tree234 *t;\n  share_globreq *psVar31;\n  share_xchannel *psVar33;\n  ssh_sharing_connstate *psVar34;\n  uint uVar35;\n  uchar *puVar36;\n  ssh_sharing_connstate *psVar37;\n  undefined4 uVar38;\n  int iVar39;\n  uint *puVar40;\n  uint uVar41;\n  uint in_t3;\n  share_xchannel_message *psVar42;\n  share_channel *unaff_s1;\n  int unaff_s2;\n  ssh_sharing_connstate *psVar43;\n  int *unaff_s3;\n  Socket *unaff_s4;\n  uint *puVar44;\n  uint *puVar45;\n  ssh_sharing_connstate *psVar46;\n  ssh_sharing_connstate *psVar47;\n  uchar *puVar48;\n  uchar *puVar49;\n  int in_t9;\n  code *pcVar50;\n  int *piVar51;\n  code *pcVar52;\n  ssh_sharing_connstate *psStack_108;\n  ssh_sharing_connstate *psStack_e8;\n  ssh_sharing_connstate *psStack_e4;\n  Socket ppsStack_e0;\n  plug_function_table *ppStack_c0;\n  int iStack_bc;\n  share_xchannel *psStack_b8;\n  ssh_sharing_connstate *psStack_b4;\n  ssh_sharing_connstate *psStack_b0;\n  int *piStack_ac;\n  Socket *pppsStack_a8;\n  ssh_sharing_connstate *psStack_a4;\n  ssh_sharing_connstate *psStack_a0;\n  int iStack_9c;\n  share_xchannel *psStack_98;\n  code *pcStack_94;\n  uchar auStack_80 [4];\n  int iStack_7c;\n  code *pcStack_78;\n  uint uStack_70;\n  plug_function_table *ppStack_6c;\n  share_xchannel_message *psStack_68;\n  share_channel *psStack_64;\n  int iStack_60;\n  code *pcStack_5c;\n  uchar window_adjust [8];\n  \n  psVar46 = *(ssh_sharing_connstate **)(in_t9 + 0x38e6c);\n  psVar42 = xc->msghead;\n  ppVar16 = psVar46->fn;\n  if (psVar42 != (share_xchannel_message *)0x0) {\n    unaff_s4 = &cs->sock;\n    unaff_s3 = &chan->downstream_maxpkt;\n    unaff_s2 = *(int *)(in_t9 + 0x38ab8) + 0x68e4;\n    do {\n      iVar39 = psVar42->datalen;\n      puVar36 = psVar42->data;\n      xc->msghead = psVar42->next;\n      if (3 < iVar39) {\n        *puVar36 = *(uchar *)&chan->downstream_id;\n        psVar42->data[1] = (uchar)*(undefined2 *)&chan->downstream_id;\n        psVar42->data[2] = (uchar)(chan->downstream_id >> 8);\n        psVar42->data[3] = (uchar)chan->downstream_id;\n        puVar36 = psVar42->data;\n        iVar39 = psVar42->datalen;\n      }\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)unaff_s4,psVar42->type,puVar36,iVar39,chan,\n                 (share_channel *)unaff_s3);\n      (**(code **)(&DAT_00038380 + in_t9))(psVar42);\n      psVar42 = xc->msghead;\n      unaff_s1 = chan;\n    } while (psVar42 != (share_xchannel_message *)0x0);\n  }\n  window_adjust._0_4_ = xc->server_id;\n  iVar39 = downstream_window - xc->window;\n  psVar30 = (ssh_sharing_connstate *)cs->parent->ssh;\n  psVar33 = (share_xchannel *)cs->id;\n  window_adjust[4] = (uchar)((uint)iVar39 >> 0x18);\n  window_adjust[6] = (uchar)((uint)iVar39 >> 8);\n  window_adjust[5] = (uchar)((uint)iVar39 >> 0x10);\n  window_adjust[7] = (uchar)iVar39;\n  (**(code **)(in_t9 + 0x38b58))(psVar30,psVar33,0x5d,window_adjust);\n  if (ppVar16 == psVar46->fn) {\n    return;\n  }\n  pcVar50 = *(code **)(in_t9 + 0x38e40);\n  pcVar52 = share_xchannel_failure;\n  (*pcVar50)();\n  pcStack_78 = pcVar50 + 0x40180;\n  uStack_70 = psVar33->server_id;\n  psVar37 = (ssh_sharing_connstate *)&DAT_00000061;\n  puVar44 = &uStack_70;\n  psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x38ccc);\n  iStack_7c = *(int *)(pcVar50 + 0x38200) + -0x4248;\n  ppStack_6c = psVar43->fn;\n  auStack_80[0] = '\0';\n  auStack_80[1] = '\0';\n  auStack_80[2] = '\0';\n  auStack_80[3] = '\x04';\n  psStack_68 = psVar42;\n  psStack_64 = unaff_s1;\n  iStack_60 = unaff_s2;\n  pcStack_5c = pcVar52;\n  (**(code **)(pcVar50 + 0x389b8))(psVar30->parent->ssh,psVar30->id);\n  psVar33->live = 0;\n  cs_00 = psVar30;\n  share_dead_xchannel_respond(psVar30,psVar33);\n  if (ppStack_6c == psVar43->fn) {\n    return;\n  }\n  pcVar50 = *(code **)(pcStack_78 + -0x74e0);\n  pcVar52 = share_receive;\n  (*pcVar50)();\n  iVar17 = cs_00->crLine;\n  piVar51 = *(int **)(pcVar50 + 0x38c10);\n  iStack_bc = *piVar51;\n  psVar47 = cs;\n  psStack_b8 = psVar33;\n  psStack_b4 = psVar30;\n  psStack_b0 = psVar43;\n  piStack_ac = unaff_s3;\n  pppsStack_a8 = unaff_s4;\n  psStack_a4 = cs;\n  psStack_a0 = psVar46;\n  iStack_9c = iVar39;\n  psStack_98 = xc;\n  pcStack_94 = pcVar52;\n  if (iVar17 != 0x709) {\n    if (0x709 < iVar17) {\n      puVar45 = puVar44;\n      if (iVar17 == 0x72e) goto LAB_000784dc;\n      if (iVar17 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar17 != 0) goto LAB_00078210;\n    cs_00->recvlen = 0;\n  }\n  if (puVar44 == (uint *)0x0) {\nLAB_000781c4:\n    cs_00->crLine = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar51) {\n        return;\n      }\n      (**(code **)(pcVar50 + 0x38be4))();\n      puVar45 = puVar44;\n      psVar37 = psVar47;\nLAB_00078f28:\n      ppStack_c0 = psStack_108->fn;\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,(share_channel *)0x0,\n                 (share_channel *)0xc);\n      (**(code **)(pcVar50 + 0x38124))(psVar46);\n      cs_00->recvlen = 0;\nLAB_000784dc:\n      psVar30 = (ssh_sharing_connstate *)((int)puVar45 + (int)(psVar37->recvbuf + -0x20));\n      psVar47 = psVar37;\n      do {\n        puVar44 = (uint *)((int)psVar30 + (-1 - (int)psVar47));\n        if (psVar47 == psVar30) {\n          cs_00->crLine = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar39 = cs_00->recvlen;\n        psVar37 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);\n        iVar17 = iVar39 + 1;\n        bVar1 = *(byte *)&psVar47->fn;\n        in_t3 = (uint)bVar1;\n        cs_00->recvlen = iVar17;\n        cs_00->recvbuf[iVar39] = bVar1;\n        psVar47 = psVar37;\n      } while (iVar17 < 4);\n      iVar39 = (**(code **)(pcVar50 + 0x38248))(*(int *)cs_00->recvbuf + 4);\n      cs_00->curr_packetlen = iVar39;\n      puVar45 = puVar44;\n      if (iVar39 - 5U < 0x400c) {\n        psVar46 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (psVar47 = psVar37, (int)psVar46 < iVar39) {\nLAB_00078104:\n          if (puVar45 == (uint *)0x0) {\n            cs_00->crLine = 0x73b;\n            puVar44 = (uint *)0x0;\n            goto LAB_00078214;\n          }\n          iVar39 = cs_00->recvlen;\n          uVar32 = *(uchar *)&psVar37->fn;\n          psVar37 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);\n          psVar46 = (ssh_sharing_connstate *)(iVar39 + 1);\n          cs_00->recvlen = (int)psVar46;\n          cs_00->recvbuf[iVar39] = uVar32;\n          puVar45 = (uint *)((int)puVar45 + -1);\n          iVar39 = cs_00->curr_packetlen;\n        }\n        bVar1 = cs_00->recvbuf[4];\n        puVar36 = cs_00->recvbuf + 5;\n        puVar25 = (undefined1 *)((int)&psVar46[-1].globreq_head + 3);\n        if (bVar1 != 0x5a) {\n          if (bVar1 < 0x5b) {\n            if (bVar1 != 2) {\n              if (2 < bVar1) {\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }\n              if (bVar1 != 1) {\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }\n              (*(*cs_00->sock)->close)(cs_00->sock);\n              cs_00->sock = (Socket)0x0;\n              share_try_cleanup(cs_00);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3);\n            if ((bVar1 == 0x62) &&\n               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)) {\n              psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);\n              iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0);\n              psVar30 = psStack_e8;\n              if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0);\n            if ((bVar1 == 0x61) && (3 < (int)puVar25)) {\n              ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar26 != (share_channel *)0x0) {\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar1 == 0x5c) {\n              if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar1) {\n              if (100 < bVar1) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)puVar25 < 0x10) {\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar41 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar35 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar43 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8);\n            psStack_e8 = psVar43;\n            pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0);\n            if (pvVar23 == (void *)0x0) {\n              psStack_e4 = psVar43;\n              psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;\n              ppVar16 = psVar46->fn;\n            }\n            else {\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)ppVar16;\n            cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8);\n            uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8));\n            if (pvVar23 != (void *)0x0) {\n              psVar19 = cs_00->parent;\n              uVar38 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (psVar46 != (ssh_sharing_connstate *)0x0) {\n              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\n        iVar39 = *(int *)(pcVar50 + 0x38144);\n        if (3 < (int)puVar25) {\n          iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n          if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n             (psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),\n             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8)) {\n            iVar39 = *(int *)(pcVar50 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pppVar14 = &psStack_e8->fn;\n          pppVar15 = &psStack_e8->fn;\n          psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)((int)&psStack_e8->fn + 2));\n          psVar46 = (ssh_sharing_connstate *)\n                    ((uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8)\n          ;\n          uVar41 = (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n          share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                            (uint)&cs_00->channels_by_server,(uint)psVar46,uVar41,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8));\n          *(char *)&psVar43->fn = (char)(uVar41 >> 0x18);\n          puVar36[(int)((int)pppVar14 + 1)] = (byte)(uVar41 >> 0x10);\n          *(char *)&psStack_108->fn = (char)(uVar41 >> 8);\n          puVar36[(int)((int)pppVar15 + 3)] = (byte)uVar41;\n          (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,0x5a,puVar36,puVar25,0);\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(iVar39 + -0x4114);\nLAB_000787a4:\n        while (pcVar18 == (char *)0x0) {\n          (**(code **)(pcVar50 + 0x38a34))\n                    (*(int *)(pcVar50 + 0x38144) + -0x3f38,*(int *)(pcVar50 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar50 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43);\n        }\n        share_disconnect(cs_00,pcVar18);\n        (**(code **)(pcVar50 + 0x38124))(pcVar18);\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }\n      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                  (*(int *)(pcVar50 + 0x38144) + -0x415c,iVar39);\nLAB_000781e4:\n      share_disconnect(cs_00,pcVar18);\n      (**(code **)(pcVar50 + 0x38124))(pcVar18);\n      puVar44 = puVar45;\n      psVar47 = psVar37;\nLAB_00078210:\n      cs_00->crLine = 0;\n    } while( true );\n  }\n  uVar41 = cs_00->recvlen;\n  uVar32 = *(uchar *)&psVar37->fn;\n  puVar40 = (uint *)((int)puVar44 + -1);\n  psVar30 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);\n  puVar45 = puVar40;\n  if (uVar32 == '\n') {\nLAB_0007855c:\n    psVar37 = psVar30;\n    if (0x2d < uVar41) {\n      psVar43 = (ssh_sharing_connstate *)cs_00->recvbuf;\n      iVar39 = (**(code **)(pcVar50 + 0x38bf8))(psVar43,*(int *)(pcVar50 + 0x38144) + -0x3e10,0x2e);\n      if (iVar39 == 0) {\n        if ((0 < (int)uVar41) && (cs_00->recvbuf[uVar41 - 1] == '\r')) {\n          cs_00->recvlen = uVar41 - 1;\n          uVar41 = uVar41 - 1;\n        }\n        (**(code **)(pcVar50 + 0x388f4))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(pcVar50 + 0x38144) + -0x417c,uVar41,psVar43\n                  );\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }\n    }\n    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }\n  psVar34 = (ssh_sharing_connstate *)((int)puVar44 + (int)(psVar37->recvbuf + -0x20));\n  if (uVar41 < 0x4010) {\n    uVar41 = uVar41 + 1;\n    psVar47 = psVar30;\n    do {\n      cs_00->recvlen = uVar41;\n      cs_00->recvbuf[uVar41 - 1] = uVar32;\n      if (psVar34 == psVar47) goto LAB_000781c4;\n      puVar44 = (uint *)((int)puVar40 + ((int)psVar37 - (int)psVar47));\n      psVar30 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);\n      uVar32 = *(uchar *)&psVar47->fn;\n      puVar45 = puVar44;\n      if (uVar32 == '\n') goto LAB_0007855c;\n      uVar41 = uVar41 + 1;\n      psVar47 = psVar30;\n    } while (uVar41 != 0x4011);\n  }\n  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41cc);\n  puVar45 = puVar44;\n  psVar37 = psVar30;\n  goto LAB_000781e4;\n}" primitive_type (function_declarator "share_xchannel_confirmation\n               (ssh_sharing_connstate *cs,share_xchannel *xc,share_channel *chan,\n               uint downstream_window)" identifier (parameter_list "(ssh_sharing_connstate *cs,share_xchannel *xc,share_channel *chan,\n               uint downstream_window)" ( (parameter_declaration "ssh_sharing_connstate *cs" type_identifier (pointer_declarator "*cs" * identifier)) , (parameter_declaration "share_xchannel *xc" type_identifier (pointer_declarator "*xc" * identifier)) , (parameter_declaration "share_channel *chan" type_identifier (pointer_declarator "*chan" * identifier)) , (parameter_declaration "uint downstream_window" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  byte bVar3;\n  byte bVar4;\n  byte bVar5;\n  uchar uVar6;\n  uchar uVar7;\n  uchar uVar8;\n  uchar uVar9;\n  undefined1 uVar10;\n  undefined1 uVar11;\n  undefined1 uVar12;\n  bool bVar13;\n  plug_function_table **pppVar14;\n  plug_function_table **pppVar15;\n  plug_function_table *ppVar16;\n  int iVar17;\n  char *pcVar18;\n  uint upstream_id;\n  ssh_sharing_state *psVar19;\n  Socket ppsVar20;\n  int iVar21;\n  int iVar22;\n  void *pvVar23;\n  undefined1 *puVar24;\n  undefined1 *puVar25;\n  share_channel *psVar26;\n  share_forwarding *e;\n  share_forwarding *psVar27;\n  share_globreq *psVar28;\n  undefined4 *puVar29;\n  ssh_sharing_connstate *psVar30;\n  ssh_sharing_connstate *cs_00;\n  uchar uVar32;\n  tree234 *t;\n  share_globreq *psVar31;\n  share_xchannel *psVar33;\n  ssh_sharing_connstate *psVar34;\n  uint uVar35;\n  uchar *puVar36;\n  ssh_sharing_connstate *psVar37;\n  undefined4 uVar38;\n  int iVar39;\n  uint *puVar40;\n  uint uVar41;\n  uint in_t3;\n  share_xchannel_message *psVar42;\n  share_channel *unaff_s1;\n  int unaff_s2;\n  ssh_sharing_connstate *psVar43;\n  int *unaff_s3;\n  Socket *unaff_s4;\n  uint *puVar44;\n  uint *puVar45;\n  ssh_sharing_connstate *psVar46;\n  ssh_sharing_connstate *psVar47;\n  uchar *puVar48;\n  uchar *puVar49;\n  int in_t9;\n  code *pcVar50;\n  int *piVar51;\n  code *pcVar52;\n  ssh_sharing_connstate *psStack_108;\n  ssh_sharing_connstate *psStack_e8;\n  ssh_sharing_connstate *psStack_e4;\n  Socket ppsStack_e0;\n  plug_function_table *ppStack_c0;\n  int iStack_bc;\n  share_xchannel *psStack_b8;\n  ssh_sharing_connstate *psStack_b4;\n  ssh_sharing_connstate *psStack_b0;\n  int *piStack_ac;\n  Socket *pppsStack_a8;\n  ssh_sharing_connstate *psStack_a4;\n  ssh_sharing_connstate *psStack_a0;\n  int iStack_9c;\n  share_xchannel *psStack_98;\n  code *pcStack_94;\n  uchar auStack_80 [4];\n  int iStack_7c;\n  code *pcStack_78;\n  uint uStack_70;\n  plug_function_table *ppStack_6c;\n  share_xchannel_message *psStack_68;\n  share_channel *psStack_64;\n  int iStack_60;\n  code *pcStack_5c;\n  uchar window_adjust [8];\n  \n  psVar46 = *(ssh_sharing_connstate **)(in_t9 + 0x38e6c);\n  psVar42 = xc->msghead;\n  ppVar16 = psVar46->fn;\n  if (psVar42 != (share_xchannel_message *)0x0) {\n    unaff_s4 = &cs->sock;\n    unaff_s3 = &chan->downstream_maxpkt;\n    unaff_s2 = *(int *)(in_t9 + 0x38ab8) + 0x68e4;\n    do {\n      iVar39 = psVar42->datalen;\n      puVar36 = psVar42->data;\n      xc->msghead = psVar42->next;\n      if (3 < iVar39) {\n        *puVar36 = *(uchar *)&chan->downstream_id;\n        psVar42->data[1] = (uchar)*(undefined2 *)&chan->downstream_id;\n        psVar42->data[2] = (uchar)(chan->downstream_id >> 8);\n        psVar42->data[3] = (uchar)chan->downstream_id;\n        puVar36 = psVar42->data;\n        iVar39 = psVar42->datalen;\n      }\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)unaff_s4,psVar42->type,puVar36,iVar39,chan,\n                 (share_channel *)unaff_s3);\n      (**(code **)(&DAT_00038380 + in_t9))(psVar42);\n      psVar42 = xc->msghead;\n      unaff_s1 = chan;\n    } while (psVar42 != (share_xchannel_message *)0x0);\n  }\n  window_adjust._0_4_ = xc->server_id;\n  iVar39 = downstream_window - xc->window;\n  psVar30 = (ssh_sharing_connstate *)cs->parent->ssh;\n  psVar33 = (share_xchannel *)cs->id;\n  window_adjust[4] = (uchar)((uint)iVar39 >> 0x18);\n  window_adjust[6] = (uchar)((uint)iVar39 >> 8);\n  window_adjust[5] = (uchar)((uint)iVar39 >> 0x10);\n  window_adjust[7] = (uchar)iVar39;\n  (**(code **)(in_t9 + 0x38b58))(psVar30,psVar33,0x5d,window_adjust);\n  if (ppVar16 == psVar46->fn) {\n    return;\n  }\n  pcVar50 = *(code **)(in_t9 + 0x38e40);\n  pcVar52 = share_xchannel_failure;\n  (*pcVar50)();\n  pcStack_78 = pcVar50 + 0x40180;\n  uStack_70 = psVar33->server_id;\n  psVar37 = (ssh_sharing_connstate *)&DAT_00000061;\n  puVar44 = &uStack_70;\n  psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x38ccc);\n  iStack_7c = *(int *)(pcVar50 + 0x38200) + -0x4248;\n  ppStack_6c = psVar43->fn;\n  auStack_80[0] = '\0';\n  auStack_80[1] = '\0';\n  auStack_80[2] = '\0';\n  auStack_80[3] = '\x04';\n  psStack_68 = psVar42;\n  psStack_64 = unaff_s1;\n  iStack_60 = unaff_s2;\n  pcStack_5c = pcVar52;\n  (**(code **)(pcVar50 + 0x389b8))(psVar30->parent->ssh,psVar30->id);\n  psVar33->live = 0;\n  cs_00 = psVar30;\n  share_dead_xchannel_respond(psVar30,psVar33);\n  if (ppStack_6c == psVar43->fn) {\n    return;\n  }\n  pcVar50 = *(code **)(pcStack_78 + -0x74e0);\n  pcVar52 = share_receive;\n  (*pcVar50)();\n  iVar17 = cs_00->crLine;\n  piVar51 = *(int **)(pcVar50 + 0x38c10);\n  iStack_bc = *piVar51;\n  psVar47 = cs;\n  psStack_b8 = psVar33;\n  psStack_b4 = psVar30;\n  psStack_b0 = psVar43;\n  piStack_ac = unaff_s3;\n  pppsStack_a8 = unaff_s4;\n  psStack_a4 = cs;\n  psStack_a0 = psVar46;\n  iStack_9c = iVar39;\n  psStack_98 = xc;\n  pcStack_94 = pcVar52;\n  if (iVar17 != 0x709) {\n    if (0x709 < iVar17) {\n      puVar45 = puVar44;\n      if (iVar17 == 0x72e) goto LAB_000784dc;\n      if (iVar17 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar17 != 0) goto LAB_00078210;\n    cs_00->recvlen = 0;\n  }\n  if (puVar44 == (uint *)0x0) {\nLAB_000781c4:\n    cs_00->crLine = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar51) {\n        return;\n      }\n      (**(code **)(pcVar50 + 0x38be4))();\n      puVar45 = puVar44;\n      psVar37 = psVar47;\nLAB_00078f28:\n      ppStack_c0 = psStack_108->fn;\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,(share_channel *)0x0,\n                 (share_channel *)0xc);\n      (**(code **)(pcVar50 + 0x38124))(psVar46);\n      cs_00->recvlen = 0;\nLAB_000784dc:\n      psVar30 = (ssh_sharing_connstate *)((int)puVar45 + (int)(psVar37->recvbuf + -0x20));\n      psVar47 = psVar37;\n      do {\n        puVar44 = (uint *)((int)psVar30 + (-1 - (int)psVar47));\n        if (psVar47 == psVar30) {\n          cs_00->crLine = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar39 = cs_00->recvlen;\n        psVar37 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);\n        iVar17 = iVar39 + 1;\n        bVar1 = *(byte *)&psVar47->fn;\n        in_t3 = (uint)bVar1;\n        cs_00->recvlen = iVar17;\n        cs_00->recvbuf[iVar39] = bVar1;\n        psVar47 = psVar37;\n      } while (iVar17 < 4);\n      iVar39 = (**(code **)(pcVar50 + 0x38248))(*(int *)cs_00->recvbuf + 4);\n      cs_00->curr_packetlen = iVar39;\n      puVar45 = puVar44;\n      if (iVar39 - 5U < 0x400c) {\n        psVar46 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (psVar47 = psVar37, (int)psVar46 < iVar39) {\nLAB_00078104:\n          if (puVar45 == (uint *)0x0) {\n            cs_00->crLine = 0x73b;\n            puVar44 = (uint *)0x0;\n            goto LAB_00078214;\n          }\n          iVar39 = cs_00->recvlen;\n          uVar32 = *(uchar *)&psVar37->fn;\n          psVar37 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);\n          psVar46 = (ssh_sharing_connstate *)(iVar39 + 1);\n          cs_00->recvlen = (int)psVar46;\n          cs_00->recvbuf[iVar39] = uVar32;\n          puVar45 = (uint *)((int)puVar45 + -1);\n          iVar39 = cs_00->curr_packetlen;\n        }\n        bVar1 = cs_00->recvbuf[4];\n        puVar36 = cs_00->recvbuf + 5;\n        puVar25 = (undefined1 *)((int)&psVar46[-1].globreq_head + 3);\n        if (bVar1 != 0x5a) {\n          if (bVar1 < 0x5b) {\n            if (bVar1 != 2) {\n              if (2 < bVar1) {\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }\n              if (bVar1 != 1) {\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }\n              (*(*cs_00->sock)->close)(cs_00->sock);\n              cs_00->sock = (Socket)0x0;\n              share_try_cleanup(cs_00);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3);\n            if ((bVar1 == 0x62) &&\n               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)) {\n              psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);\n              iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0);\n              psVar30 = psStack_e8;\n              if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0);\n            if ((bVar1 == 0x61) && (3 < (int)puVar25)) {\n              ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar26 != (share_channel *)0x0) {\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar1 == 0x5c) {\n              if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar1) {\n              if (100 < bVar1) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)puVar25 < 0x10) {\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar41 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar35 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar43 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8);\n            psStack_e8 = psVar43;\n            pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0);\n            if (pvVar23 == (void *)0x0) {\n              psStack_e4 = psVar43;\n              psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;\n              ppVar16 = psVar46->fn;\n            }\n            else {\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)ppVar16;\n            cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8);\n            uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8));\n            if (pvVar23 != (void *)0x0) {\n              psVar19 = cs_00->parent;\n              uVar38 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (psVar46 != (ssh_sharing_connstate *)0x0) {\n              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\n        iVar39 = *(int *)(pcVar50 + 0x38144);\n        if (3 < (int)puVar25) {\n          iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n          if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n             (psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),\n             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8)) {\n            iVar39 = *(int *)(pcVar50 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pppVar14 = &psStack_e8->fn;\n          pppVar15 = &psStack_e8->fn;\n          psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)((int)&psStack_e8->fn + 2));\n          psVar46 = (ssh_sharing_connstate *)\n                    ((uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8)\n          ;\n          uVar41 = (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n          share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                            (uint)&cs_00->channels_by_server,(uint)psVar46,uVar41,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8));\n          *(char *)&psVar43->fn = (char)(uVar41 >> 0x18);\n          puVar36[(int)((int)pppVar14 + 1)] = (byte)(uVar41 >> 0x10);\n          *(char *)&psStack_108->fn = (char)(uVar41 >> 8);\n          puVar36[(int)((int)pppVar15 + 3)] = (byte)uVar41;\n          (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,0x5a,puVar36,puVar25,0);\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(iVar39 + -0x4114);\nLAB_000787a4:\n        while (pcVar18 == (char *)0x0) {\n          (**(code **)(pcVar50 + 0x38a34))\n                    (*(int *)(pcVar50 + 0x38144) + -0x3f38,*(int *)(pcVar50 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar50 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43);\n        }\n        share_disconnect(cs_00,pcVar18);\n        (**(code **)(pcVar50 + 0x38124))(pcVar18);\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }\n      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                  (*(int *)(pcVar50 + 0x38144) + -0x415c,iVar39);\nLAB_000781e4:\n      share_disconnect(cs_00,pcVar18);\n      (**(code **)(pcVar50 + 0x38124))(pcVar18);\n      puVar44 = puVar45;\n      psVar47 = psVar37;\nLAB_00078210:\n      cs_00->crLine = 0;\n    } while( true );\n  }\n  uVar41 = cs_00->recvlen;\n  uVar32 = *(uchar *)&psVar37->fn;\n  puVar40 = (uint *)((int)puVar44 + -1);\n  psVar30 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);\n  puVar45 = puVar40;\n  if (uVar32 == '\n') {\nLAB_0007855c:\n    psVar37 = psVar30;\n    if (0x2d < uVar41) {\n      psVar43 = (ssh_sharing_connstate *)cs_00->recvbuf;\n      iVar39 = (**(code **)(pcVar50 + 0x38bf8))(psVar43,*(int *)(pcVar50 + 0x38144) + -0x3e10,0x2e);\n      if (iVar39 == 0) {\n        if ((0 < (int)uVar41) && (cs_00->recvbuf[uVar41 - 1] == '\r')) {\n          cs_00->recvlen = uVar41 - 1;\n          uVar41 = uVar41 - 1;\n        }\n        (**(code **)(pcVar50 + 0x388f4))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(pcVar50 + 0x38144) + -0x417c,uVar41,psVar43\n                  );\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }\n    }\n    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }\n  psVar34 = (ssh_sharing_connstate *)((int)puVar44 + (int)(psVar37->recvbuf + -0x20));\n  if (uVar41 < 0x4010) {\n    uVar41 = uVar41 + 1;\n    psVar47 = psVar30;\n    do {\n      cs_00->recvlen = uVar41;\n      cs_00->recvbuf[uVar41 - 1] = uVar32;\n      if (psVar34 == psVar47) goto LAB_000781c4;\n      puVar44 = (uint *)((int)puVar40 + ((int)psVar37 - (int)psVar47));\n      psVar30 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);\n      uVar32 = *(uchar *)&psVar47->fn;\n      puVar45 = puVar44;\n      if (uVar32 == '\n') goto LAB_0007855c;\n      uVar41 = uVar41 + 1;\n      psVar47 = psVar30;\n    } while (uVar41 != 0x4011);\n  }\n  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41cc);\n  puVar45 = puVar44;\n  psVar37 = psVar30;\n  goto LAB_000781e4;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "uchar uVar6;" type_identifier identifier ;) (declaration "uchar uVar7;" type_identifier identifier ;) (declaration "uchar uVar8;" type_identifier identifier ;) (declaration "uchar uVar9;" type_identifier identifier ;) (declaration "undefined1 uVar10;" type_identifier identifier ;) (declaration "undefined1 uVar11;" type_identifier identifier ;) (declaration "undefined1 uVar12;" type_identifier identifier ;) (declaration "bool bVar13;" primitive_type identifier ;) (declaration "plug_function_table **pppVar14;" type_identifier (pointer_declarator "**pppVar14" * (pointer_declarator "*pppVar14" * identifier)) ;) (declaration "plug_function_table **pppVar15;" type_identifier (pointer_declarator "**pppVar15" * (pointer_declarator "*pppVar15" * identifier)) ;) (declaration "plug_function_table *ppVar16;" type_identifier (pointer_declarator "*ppVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "uint upstream_id;" type_identifier identifier ;) (declaration "ssh_sharing_state *psVar19;" type_identifier (pointer_declarator "*psVar19" * identifier) ;) (declaration "Socket ppsVar20;" type_identifier identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "void *pvVar23;" primitive_type (pointer_declarator "*pvVar23" * identifier) ;) (declaration "undefined1 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined1 *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "share_channel *psVar26;" type_identifier (pointer_declarator "*psVar26" * identifier) ;) (declaration "share_forwarding *e;" type_identifier (pointer_declarator "*e" * identifier) ;) (declaration "share_forwarding *psVar27;" type_identifier (pointer_declarator "*psVar27" * identifier) ;) (declaration "share_globreq *psVar28;" type_identifier (pointer_declarator "*psVar28" * identifier) ;) (declaration "undefined4 *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "ssh_sharing_connstate *psVar30;" type_identifier (pointer_declarator "*psVar30" * identifier) ;) (declaration "ssh_sharing_connstate *cs_00;" type_identifier (pointer_declarator "*cs_00" * identifier) ;) (declaration "uchar uVar32;" type_identifier identifier ;) (declaration "tree234 *t;" type_identifier (pointer_declarator "*t" * identifier) ;) (declaration "share_globreq *psVar31;" type_identifier (pointer_declarator "*psVar31" * identifier) ;) (declaration "share_xchannel *psVar33;" type_identifier (pointer_declarator "*psVar33" * identifier) ;) (declaration "ssh_sharing_connstate *psVar34;" type_identifier (pointer_declarator "*psVar34" * identifier) ;) (declaration "uint uVar35;" type_identifier identifier ;) (declaration "uchar *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "ssh_sharing_connstate *psVar37;" type_identifier (pointer_declarator "*psVar37" * identifier) ;) (declaration "undefined4 uVar38;" type_identifier identifier ;) (declaration "int iVar39;" primitive_type identifier ;) (declaration "uint *puVar40;" type_identifier (pointer_declarator "*puVar40" * identifier) ;) (declaration "uint uVar41;" type_identifier identifier ;) (declaration "uint in_t3;" type_identifier identifier ;) (declaration "share_xchannel_message *psVar42;" type_identifier (pointer_declarator "*psVar42" * identifier) ;) (declaration "share_channel *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "int unaff_s2;" primitive_type identifier ;) (declaration "ssh_sharing_connstate *psVar43;" type_identifier (pointer_declarator "*psVar43" * identifier) ;) (declaration "int *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "Socket *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint *puVar44;" type_identifier (pointer_declarator "*puVar44" * identifier) ;) (declaration "uint *puVar45;" type_identifier (pointer_declarator "*puVar45" * identifier) ;) (declaration "ssh_sharing_connstate *psVar46;" type_identifier (pointer_declarator "*psVar46" * identifier) ;) (declaration "ssh_sharing_connstate *psVar47;" type_identifier (pointer_declarator "*psVar47" * identifier) ;) (declaration "uchar *puVar48;" type_identifier (pointer_declarator "*puVar48" * identifier) ;) (declaration "uchar *puVar49;" type_identifier (pointer_declarator "*puVar49" * identifier) ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "code *pcVar50;" type_identifier (pointer_declarator "*pcVar50" * identifier) ;) (declaration "int *piVar51;" primitive_type (pointer_declarator "*piVar51" * identifier) ;) (declaration "code *pcVar52;" type_identifier (pointer_declarator "*pcVar52" * identifier) ;) (declaration "ssh_sharing_connstate *psStack_108;" type_identifier (pointer_declarator "*psStack_108" * identifier) ;) (declaration "ssh_sharing_connstate *psStack_e8;" type_identifier (pointer_declarator "*psStack_e8" * identifier) ;) (declaration "ssh_sharing_connstate *psStack_e4;" type_identifier (pointer_declarator "*psStack_e4" * identifier) ;) (declaration "Socket ppsStack_e0;" type_identifier identifier ;) (declaration "plug_function_table *ppStack_c0;" type_identifier (pointer_declarator "*ppStack_c0" * identifier) ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "share_xchannel *psStack_b8;" type_identifier (pointer_declarator "*psStack_b8" * identifier) ;) (declaration "ssh_sharing_connstate *psStack_b4;" type_identifier (pointer_declarator "*psStack_b4" * identifier) ;) (declaration "ssh_sharing_connstate *psStack_b0;" type_identifier (pointer_declarator "*psStack_b0" * identifier) ;) (declaration "int *piStack_ac;" primitive_type (pointer_declarator "*piStack_ac" * identifier) ;) (declaration "Socket *pppsStack_a8;" type_identifier (pointer_declarator "*pppsStack_a8" * identifier) ;) (declaration "ssh_sharing_connstate *psStack_a4;" type_identifier (pointer_declarator "*psStack_a4" * identifier) ;) (declaration "ssh_sharing_connstate *psStack_a0;" type_identifier (pointer_declarator "*psStack_a0" * identifier) ;) (declaration "int iStack_9c;" primitive_type identifier ;) (declaration "share_xchannel *psStack_98;" type_identifier (pointer_declarator "*psStack_98" * identifier) ;) (declaration "code *pcStack_94;" type_identifier (pointer_declarator "*pcStack_94" * identifier) ;) (declaration "uchar auStack_80 [4];" type_identifier (array_declarator "auStack_80 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_7c;" primitive_type identifier ;) (declaration "code *pcStack_78;" type_identifier (pointer_declarator "*pcStack_78" * identifier) ;) (declaration "uint uStack_70;" type_identifier identifier ;) (declaration "plug_function_table *ppStack_6c;" type_identifier (pointer_declarator "*ppStack_6c" * identifier) ;) (declaration "share_xchannel_message *psStack_68;" type_identifier (pointer_declarator "*psStack_68" * identifier) ;) (declaration "share_channel *psStack_64;" type_identifier (pointer_declarator "*psStack_64" * identifier) ;) (declaration "int iStack_60;" primitive_type identifier ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "uchar window_adjust [8];" type_identifier (array_declarator "window_adjust [8]" identifier [ number_literal ]) ;) (expression_statement "psVar46 = *(ssh_sharing_connstate **)(in_t9 + 0x38e6c);" (assignment_expression "psVar46 = *(ssh_sharing_connstate **)(in_t9 + 0x38e6c)" identifier = (pointer_expression "*(ssh_sharing_connstate **)(in_t9 + 0x38e6c)" * (cast_expression "(ssh_sharing_connstate **)(in_t9 + 0x38e6c)" ( (type_descriptor "ssh_sharing_connstate **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x38e6c)" ( (binary_expression "in_t9 + 0x38e6c" identifier + number_literal) ))))) ;) (expression_statement "psVar42 = xc->msghead;" (assignment_expression "psVar42 = xc->msghead" identifier = (field_expression "xc->msghead" identifier -> field_identifier)) ;) (expression_statement "ppVar16 = psVar46->fn;" (assignment_expression "ppVar16 = psVar46->fn" identifier = (field_expression "psVar46->fn" identifier -> field_identifier)) ;) (if_statement "if (psVar42 != (share_xchannel_message *)0x0) {\n    unaff_s4 = &cs->sock;\n    unaff_s3 = &chan->downstream_maxpkt;\n    unaff_s2 = *(int *)(in_t9 + 0x38ab8) + 0x68e4;\n    do {\n      iVar39 = psVar42->datalen;\n      puVar36 = psVar42->data;\n      xc->msghead = psVar42->next;\n      if (3 < iVar39) {\n        *puVar36 = *(uchar *)&chan->downstream_id;\n        psVar42->data[1] = (uchar)*(undefined2 *)&chan->downstream_id;\n        psVar42->data[2] = (uchar)(chan->downstream_id >> 8);\n        psVar42->data[3] = (uchar)chan->downstream_id;\n        puVar36 = psVar42->data;\n        iVar39 = psVar42->datalen;\n      }\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)unaff_s4,psVar42->type,puVar36,iVar39,chan,\n                 (share_channel *)unaff_s3);\n      (**(code **)(&DAT_00038380 + in_t9))(psVar42);\n      psVar42 = xc->msghead;\n      unaff_s1 = chan;\n    } while (psVar42 != (share_xchannel_message *)0x0);\n  }" if (parenthesized_expression "(psVar42 != (share_xchannel_message *)0x0)" ( (binary_expression "psVar42 != (share_xchannel_message *)0x0" identifier != (cast_expression "(share_xchannel_message *)0x0" ( (type_descriptor "share_xchannel_message *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    unaff_s4 = &cs->sock;\n    unaff_s3 = &chan->downstream_maxpkt;\n    unaff_s2 = *(int *)(in_t9 + 0x38ab8) + 0x68e4;\n    do {\n      iVar39 = psVar42->datalen;\n      puVar36 = psVar42->data;\n      xc->msghead = psVar42->next;\n      if (3 < iVar39) {\n        *puVar36 = *(uchar *)&chan->downstream_id;\n        psVar42->data[1] = (uchar)*(undefined2 *)&chan->downstream_id;\n        psVar42->data[2] = (uchar)(chan->downstream_id >> 8);\n        psVar42->data[3] = (uchar)chan->downstream_id;\n        puVar36 = psVar42->data;\n        iVar39 = psVar42->datalen;\n      }\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)unaff_s4,psVar42->type,puVar36,iVar39,chan,\n                 (share_channel *)unaff_s3);\n      (**(code **)(&DAT_00038380 + in_t9))(psVar42);\n      psVar42 = xc->msghead;\n      unaff_s1 = chan;\n    } while (psVar42 != (share_xchannel_message *)0x0);\n  }" { (expression_statement "unaff_s4 = &cs->sock;" (assignment_expression "unaff_s4 = &cs->sock" identifier = (pointer_expression "&cs->sock" & (field_expression "cs->sock" identifier -> field_identifier))) ;) (expression_statement "unaff_s3 = &chan->downstream_maxpkt;" (assignment_expression "unaff_s3 = &chan->downstream_maxpkt" identifier = (pointer_expression "&chan->downstream_maxpkt" & (field_expression "chan->downstream_maxpkt" identifier -> field_identifier))) ;) (expression_statement "unaff_s2 = *(int *)(in_t9 + 0x38ab8) + 0x68e4;" (assignment_expression "unaff_s2 = *(int *)(in_t9 + 0x38ab8) + 0x68e4" identifier = (binary_expression "*(int *)(in_t9 + 0x38ab8) + 0x68e4" (pointer_expression "*(int *)(in_t9 + 0x38ab8)" * (cast_expression "(int *)(in_t9 + 0x38ab8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x38ab8)" ( (binary_expression "in_t9 + 0x38ab8" identifier + number_literal) )))) + number_literal)) ;) (do_statement "do {\n      iVar39 = psVar42->datalen;\n      puVar36 = psVar42->data;\n      xc->msghead = psVar42->next;\n      if (3 < iVar39) {\n        *puVar36 = *(uchar *)&chan->downstream_id;\n        psVar42->data[1] = (uchar)*(undefined2 *)&chan->downstream_id;\n        psVar42->data[2] = (uchar)(chan->downstream_id >> 8);\n        psVar42->data[3] = (uchar)chan->downstream_id;\n        puVar36 = psVar42->data;\n        iVar39 = psVar42->datalen;\n      }\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)unaff_s4,psVar42->type,puVar36,iVar39,chan,\n                 (share_channel *)unaff_s3);\n      (**(code **)(&DAT_00038380 + in_t9))(psVar42);\n      psVar42 = xc->msghead;\n      unaff_s1 = chan;\n    } while (psVar42 != (share_xchannel_message *)0x0);" do (compound_statement "{\n      iVar39 = psVar42->datalen;\n      puVar36 = psVar42->data;\n      xc->msghead = psVar42->next;\n      if (3 < iVar39) {\n        *puVar36 = *(uchar *)&chan->downstream_id;\n        psVar42->data[1] = (uchar)*(undefined2 *)&chan->downstream_id;\n        psVar42->data[2] = (uchar)(chan->downstream_id >> 8);\n        psVar42->data[3] = (uchar)chan->downstream_id;\n        puVar36 = psVar42->data;\n        iVar39 = psVar42->datalen;\n      }\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)unaff_s4,psVar42->type,puVar36,iVar39,chan,\n                 (share_channel *)unaff_s3);\n      (**(code **)(&DAT_00038380 + in_t9))(psVar42);\n      psVar42 = xc->msghead;\n      unaff_s1 = chan;\n    }" { (expression_statement "iVar39 = psVar42->datalen;" (assignment_expression "iVar39 = psVar42->datalen" identifier = (field_expression "psVar42->datalen" identifier -> field_identifier)) ;) (expression_statement "puVar36 = psVar42->data;" (assignment_expression "puVar36 = psVar42->data" identifier = (field_expression "psVar42->data" identifier -> field_identifier)) ;) (expression_statement "xc->msghead = psVar42->next;" (assignment_expression "xc->msghead = psVar42->next" (field_expression "xc->msghead" identifier -> field_identifier) = (field_expression "psVar42->next" identifier -> field_identifier)) ;) (if_statement "if (3 < iVar39) {\n        *puVar36 = *(uchar *)&chan->downstream_id;\n        psVar42->data[1] = (uchar)*(undefined2 *)&chan->downstream_id;\n        psVar42->data[2] = (uchar)(chan->downstream_id >> 8);\n        psVar42->data[3] = (uchar)chan->downstream_id;\n        puVar36 = psVar42->data;\n        iVar39 = psVar42->datalen;\n      }" if (parenthesized_expression "(3 < iVar39)" ( (binary_expression "3 < iVar39" number_literal < identifier) )) (compound_statement "{\n        *puVar36 = *(uchar *)&chan->downstream_id;\n        psVar42->data[1] = (uchar)*(undefined2 *)&chan->downstream_id;\n        psVar42->data[2] = (uchar)(chan->downstream_id >> 8);\n        psVar42->data[3] = (uchar)chan->downstream_id;\n        puVar36 = psVar42->data;\n        iVar39 = psVar42->datalen;\n      }" { (expression_statement "*puVar36 = *(uchar *)&chan->downstream_id;" (assignment_expression "*puVar36 = *(uchar *)&chan->downstream_id" (pointer_expression "*puVar36" * identifier) = (pointer_expression "*(uchar *)&chan->downstream_id" * (cast_expression "(uchar *)&chan->downstream_id" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&chan->downstream_id" & (field_expression "chan->downstream_id" identifier -> field_identifier))))) ;) (expression_statement "psVar42->data[1] = (uchar)*(undefined2 *)&chan->downstream_id;" (assignment_expression "psVar42->data[1] = (uchar)*(undefined2 *)&chan->downstream_id" (subscript_expression "psVar42->data[1]" (field_expression "psVar42->data" identifier -> field_identifier) [ number_literal ]) = (binary_expression "(uchar)*(undefined2 *)&chan->downstream_id" (parenthesized_expression "(uchar)" ( identifier )) * (cast_expression "(undefined2 *)&chan->downstream_id" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&chan->downstream_id" & (field_expression "chan->downstream_id" identifier -> field_identifier))))) ;) (expression_statement "psVar42->data[2] = (uchar)(chan->downstream_id >> 8);" (assignment_expression "psVar42->data[2] = (uchar)(chan->downstream_id >> 8)" (subscript_expression "psVar42->data[2]" (field_expression "psVar42->data" identifier -> field_identifier) [ number_literal ]) = (call_expression "(uchar)(chan->downstream_id >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "(chan->downstream_id >> 8)" ( (binary_expression "chan->downstream_id >> 8" (field_expression "chan->downstream_id" identifier -> field_identifier) >> number_literal) )))) ;) (expression_statement "psVar42->data[3] = (uchar)chan->downstream_id;" (assignment_expression "psVar42->data[3] = (uchar)chan->downstream_id" (subscript_expression "psVar42->data[3]" (field_expression "psVar42->data" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(uchar)chan->downstream_id" ( (type_descriptor "uchar" type_identifier) ) (field_expression "chan->downstream_id" identifier -> field_identifier))) ;) (expression_statement "puVar36 = psVar42->data;" (assignment_expression "puVar36 = psVar42->data" identifier = (field_expression "psVar42->data" identifier -> field_identifier)) ;) (expression_statement "iVar39 = psVar42->datalen;" (assignment_expression "iVar39 = psVar42->datalen" identifier = (field_expression "psVar42->datalen" identifier -> field_identifier)) ;) })) (expression_statement "send_packet_to_downstream\n                ((ssh_sharing_connstate *)unaff_s4,psVar42->type,puVar36,iVar39,chan,\n                 (share_channel *)unaff_s3);" (call_expression "send_packet_to_downstream\n                ((ssh_sharing_connstate *)unaff_s4,psVar42->type,puVar36,iVar39,chan,\n                 (share_channel *)unaff_s3)" identifier (argument_list "((ssh_sharing_connstate *)unaff_s4,psVar42->type,puVar36,iVar39,chan,\n                 (share_channel *)unaff_s3)" ( (cast_expression "(ssh_sharing_connstate *)unaff_s4" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (field_expression "psVar42->type" identifier -> field_identifier) , identifier , identifier , identifier , (cast_expression "(share_channel *)unaff_s3" ( (type_descriptor "share_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "(**(code **)(&DAT_00038380 + in_t9))(psVar42);" (call_expression "(**(code **)(&DAT_00038380 + in_t9))(psVar42)" (parenthesized_expression "(**(code **)(&DAT_00038380 + in_t9))" ( (pointer_expression "**(code **)(&DAT_00038380 + in_t9)" * (pointer_expression "*(code **)(&DAT_00038380 + in_t9)" * (cast_expression "(code **)(&DAT_00038380 + in_t9)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(&DAT_00038380 + in_t9)" ( (binary_expression "&DAT_00038380 + in_t9" (pointer_expression "&DAT_00038380" & identifier) + identifier) ))))) )) (argument_list "(psVar42)" ( identifier ))) ;) (expression_statement "psVar42 = xc->msghead;" (assignment_expression "psVar42 = xc->msghead" identifier = (field_expression "xc->msghead" identifier -> field_identifier)) ;) (expression_statement "unaff_s1 = chan;" (assignment_expression "unaff_s1 = chan" identifier = identifier) ;) }) while (parenthesized_expression "(psVar42 != (share_xchannel_message *)0x0)" ( (binary_expression "psVar42 != (share_xchannel_message *)0x0" identifier != (cast_expression "(share_xchannel_message *)0x0" ( (type_descriptor "share_xchannel_message *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "window_adjust._0_4_ = xc->server_id;" (assignment_expression "window_adjust._0_4_ = xc->server_id" (field_expression "window_adjust._0_4_" identifier . field_identifier) = (field_expression "xc->server_id" identifier -> field_identifier)) ;) (expression_statement "iVar39 = downstream_window - xc->window;" (assignment_expression "iVar39 = downstream_window - xc->window" identifier = (binary_expression "downstream_window - xc->window" identifier - (field_expression "xc->window" identifier -> field_identifier))) ;) (expression_statement "psVar30 = (ssh_sharing_connstate *)cs->parent->ssh;" (assignment_expression "psVar30 = (ssh_sharing_connstate *)cs->parent->ssh" identifier = (cast_expression "(ssh_sharing_connstate *)cs->parent->ssh" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cs->parent->ssh" (field_expression "cs->parent" identifier -> field_identifier) -> field_identifier))) ;) (expression_statement "psVar33 = (share_xchannel *)cs->id;" (assignment_expression "psVar33 = (share_xchannel *)cs->id" identifier = (cast_expression "(share_xchannel *)cs->id" ( (type_descriptor "share_xchannel *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cs->id" identifier -> field_identifier))) ;) (expression_statement "window_adjust[4] = (uchar)((uint)iVar39 >> 0x18);" (assignment_expression "window_adjust[4] = (uchar)((uint)iVar39 >> 0x18)" (subscript_expression "window_adjust[4]" identifier [ number_literal ]) = (call_expression "(uchar)((uint)iVar39 >> 0x18)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)iVar39 >> 0x18)" ( (binary_expression "(uint)iVar39 >> 0x18" (cast_expression "(uint)iVar39" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "window_adjust[6] = (uchar)((uint)iVar39 >> 8);" (assignment_expression "window_adjust[6] = (uchar)((uint)iVar39 >> 8)" (subscript_expression "window_adjust[6]" identifier [ number_literal ]) = (call_expression "(uchar)((uint)iVar39 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)iVar39 >> 8)" ( (binary_expression "(uint)iVar39 >> 8" (cast_expression "(uint)iVar39" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "window_adjust[5] = (uchar)((uint)iVar39 >> 0x10);" (assignment_expression "window_adjust[5] = (uchar)((uint)iVar39 >> 0x10)" (subscript_expression "window_adjust[5]" identifier [ number_literal ]) = (call_expression "(uchar)((uint)iVar39 >> 0x10)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)iVar39 >> 0x10)" ( (binary_expression "(uint)iVar39 >> 0x10" (cast_expression "(uint)iVar39" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "window_adjust[7] = (uchar)iVar39;" (assignment_expression "window_adjust[7] = (uchar)iVar39" (subscript_expression "window_adjust[7]" identifier [ number_literal ]) = (cast_expression "(uchar)iVar39" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "(**(code **)(in_t9 + 0x38b58))(psVar30,psVar33,0x5d,window_adjust);" (call_expression "(**(code **)(in_t9 + 0x38b58))(psVar30,psVar33,0x5d,window_adjust)" (parenthesized_expression "(**(code **)(in_t9 + 0x38b58))" ( (pointer_expression "**(code **)(in_t9 + 0x38b58)" * (pointer_expression "*(code **)(in_t9 + 0x38b58)" * (cast_expression "(code **)(in_t9 + 0x38b58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x38b58)" ( (binary_expression "in_t9 + 0x38b58" identifier + number_literal) ))))) )) (argument_list "(psVar30,psVar33,0x5d,window_adjust)" ( identifier , identifier , number_literal , identifier ))) ;) (if_statement "if (ppVar16 == psVar46->fn) {\n    return;\n  }" if (parenthesized_expression "(ppVar16 == psVar46->fn)" ( (binary_expression "ppVar16 == psVar46->fn" identifier == (field_expression "psVar46->fn" identifier -> field_identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar50 = *(code **)(in_t9 + 0x38e40);" (assignment_expression "pcVar50 = *(code **)(in_t9 + 0x38e40)" identifier = (pointer_expression "*(code **)(in_t9 + 0x38e40)" * (cast_expression "(code **)(in_t9 + 0x38e40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x38e40)" ( (binary_expression "in_t9 + 0x38e40" identifier + number_literal) ))))) ;) (expression_statement "pcVar52 = share_xchannel_failure;" (assignment_expression "pcVar52 = share_xchannel_failure" identifier = identifier) ;) (expression_statement "(*pcVar50)();" (call_expression "(*pcVar50)()" (parenthesized_expression "(*pcVar50)" ( (pointer_expression "*pcVar50" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_78 = pcVar50 + 0x40180;" (assignment_expression "pcStack_78 = pcVar50 + 0x40180" identifier = (binary_expression "pcVar50 + 0x40180" identifier + number_literal)) ;) (expression_statement "uStack_70 = psVar33->server_id;" (assignment_expression "uStack_70 = psVar33->server_id" identifier = (field_expression "psVar33->server_id" identifier -> field_identifier)) ;) (expression_statement "psVar37 = (ssh_sharing_connstate *)&DAT_00000061;" (assignment_expression "psVar37 = (ssh_sharing_connstate *)&DAT_00000061" identifier = (cast_expression "(ssh_sharing_connstate *)&DAT_00000061" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000061" & identifier))) ;) (expression_statement "puVar44 = &uStack_70;" (assignment_expression "puVar44 = &uStack_70" identifier = (pointer_expression "&uStack_70" & identifier)) ;) (expression_statement "psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x38ccc);" (assignment_expression "psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x38ccc)" identifier = (pointer_expression "*(ssh_sharing_connstate **)(pcVar50 + 0x38ccc)" * (cast_expression "(ssh_sharing_connstate **)(pcVar50 + 0x38ccc)" ( (type_descriptor "ssh_sharing_connstate **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38ccc)" ( (binary_expression "pcVar50 + 0x38ccc" identifier + number_literal) ))))) ;) (expression_statement "iStack_7c = *(int *)(pcVar50 + 0x38200) + -0x4248;" (assignment_expression "iStack_7c = *(int *)(pcVar50 + 0x38200) + -0x4248" identifier = (binary_expression "*(int *)(pcVar50 + 0x38200) + -0x4248" (pointer_expression "*(int *)(pcVar50 + 0x38200)" * (cast_expression "(int *)(pcVar50 + 0x38200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38200)" ( (binary_expression "pcVar50 + 0x38200" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "ppStack_6c = psVar43->fn;" (assignment_expression "ppStack_6c = psVar43->fn" identifier = (field_expression "psVar43->fn" identifier -> field_identifier)) ;) (expression_statement "auStack_80[0] = '\0';" (assignment_expression "auStack_80[0] = '\0'" (subscript_expression "auStack_80[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "auStack_80[1] = '\0';" (assignment_expression "auStack_80[1] = '\0'" (subscript_expression "auStack_80[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "auStack_80[2] = '\0';" (assignment_expression "auStack_80[2] = '\0'" (subscript_expression "auStack_80[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "auStack_80[3] = '\x04';" (assignment_expression "auStack_80[3] = '\x04'" (subscript_expression "auStack_80[3]" identifier [ number_literal ]) = (char_literal "'\x04'" ' escape_sequence ')) ;) (expression_statement "psStack_68 = psVar42;" (assignment_expression "psStack_68 = psVar42" identifier = identifier) ;) (expression_statement "psStack_64 = unaff_s1;" (assignment_expression "psStack_64 = unaff_s1" identifier = identifier) ;) (expression_statement "iStack_60 = unaff_s2;" (assignment_expression "iStack_60 = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar52;" (assignment_expression "pcStack_5c = pcVar52" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar50 + 0x389b8))(psVar30->parent->ssh,psVar30->id);" (call_expression "(**(code **)(pcVar50 + 0x389b8))(psVar30->parent->ssh,psVar30->id)" (parenthesized_expression "(**(code **)(pcVar50 + 0x389b8))" ( (pointer_expression "**(code **)(pcVar50 + 0x389b8)" * (pointer_expression "*(code **)(pcVar50 + 0x389b8)" * (cast_expression "(code **)(pcVar50 + 0x389b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x389b8)" ( (binary_expression "pcVar50 + 0x389b8" identifier + number_literal) ))))) )) (argument_list "(psVar30->parent->ssh,psVar30->id)" ( (field_expression "psVar30->parent->ssh" (field_expression "psVar30->parent" identifier -> field_identifier) -> field_identifier) , (field_expression "psVar30->id" identifier -> field_identifier) ))) ;) (expression_statement "psVar33->live = 0;" (assignment_expression "psVar33->live = 0" (field_expression "psVar33->live" identifier -> field_identifier) = number_literal) ;) (expression_statement "cs_00 = psVar30;" (assignment_expression "cs_00 = psVar30" identifier = identifier) ;) (expression_statement "share_dead_xchannel_respond(psVar30,psVar33);" (call_expression "share_dead_xchannel_respond(psVar30,psVar33)" identifier (argument_list "(psVar30,psVar33)" ( identifier , identifier ))) ;) (if_statement "if (ppStack_6c == psVar43->fn) {\n    return;\n  }" if (parenthesized_expression "(ppStack_6c == psVar43->fn)" ( (binary_expression "ppStack_6c == psVar43->fn" identifier == (field_expression "psVar43->fn" identifier -> field_identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar50 = *(code **)(pcStack_78 + -0x74e0);" (assignment_expression "pcVar50 = *(code **)(pcStack_78 + -0x74e0)" identifier = (pointer_expression "*(code **)(pcStack_78 + -0x74e0)" * (cast_expression "(code **)(pcStack_78 + -0x74e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_78 + -0x74e0)" ( (binary_expression "pcStack_78 + -0x74e0" identifier + number_literal) ))))) ;) (expression_statement "pcVar52 = share_receive;" (assignment_expression "pcVar52 = share_receive" identifier = identifier) ;) (expression_statement "(*pcVar50)();" (call_expression "(*pcVar50)()" (parenthesized_expression "(*pcVar50)" ( (pointer_expression "*pcVar50" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar17 = cs_00->crLine;" (assignment_expression "iVar17 = cs_00->crLine" identifier = (field_expression "cs_00->crLine" identifier -> field_identifier)) ;) (expression_statement "piVar51 = *(int **)(pcVar50 + 0x38c10);" (assignment_expression "piVar51 = *(int **)(pcVar50 + 0x38c10)" identifier = (pointer_expression "*(int **)(pcVar50 + 0x38c10)" * (cast_expression "(int **)(pcVar50 + 0x38c10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38c10)" ( (binary_expression "pcVar50 + 0x38c10" identifier + number_literal) ))))) ;) (expression_statement "iStack_bc = *piVar51;" (assignment_expression "iStack_bc = *piVar51" identifier = (pointer_expression "*piVar51" * identifier)) ;) (expression_statement "psVar47 = cs;" (assignment_expression "psVar47 = cs" identifier = identifier) ;) (expression_statement "psStack_b8 = psVar33;" (assignment_expression "psStack_b8 = psVar33" identifier = identifier) ;) (expression_statement "psStack_b4 = psVar30;" (assignment_expression "psStack_b4 = psVar30" identifier = identifier) ;) (expression_statement "psStack_b0 = psVar43;" (assignment_expression "psStack_b0 = psVar43" identifier = identifier) ;) (expression_statement "piStack_ac = unaff_s3;" (assignment_expression "piStack_ac = unaff_s3" identifier = identifier) ;) (expression_statement "pppsStack_a8 = unaff_s4;" (assignment_expression "pppsStack_a8 = unaff_s4" identifier = identifier) ;) (expression_statement "psStack_a4 = cs;" (assignment_expression "psStack_a4 = cs" identifier = identifier) ;) (expression_statement "psStack_a0 = psVar46;" (assignment_expression "psStack_a0 = psVar46" identifier = identifier) ;) (expression_statement "iStack_9c = iVar39;" (assignment_expression "iStack_9c = iVar39" identifier = identifier) ;) (expression_statement "psStack_98 = xc;" (assignment_expression "psStack_98 = xc" identifier = identifier) ;) (expression_statement "pcStack_94 = pcVar52;" (assignment_expression "pcStack_94 = pcVar52" identifier = identifier) ;) (if_statement "if (iVar17 != 0x709) {\n    if (0x709 < iVar17) {\n      puVar45 = puVar44;\n      if (iVar17 == 0x72e) goto LAB_000784dc;\n      if (iVar17 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar17 != 0) goto LAB_00078210;\n    cs_00->recvlen = 0;\n  }" if (parenthesized_expression "(iVar17 != 0x709)" ( (binary_expression "iVar17 != 0x709" identifier != number_literal) )) (compound_statement "{\n    if (0x709 < iVar17) {\n      puVar45 = puVar44;\n      if (iVar17 == 0x72e) goto LAB_000784dc;\n      if (iVar17 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar17 != 0) goto LAB_00078210;\n    cs_00->recvlen = 0;\n  }" { (if_statement "if (0x709 < iVar17) {\n      puVar45 = puVar44;\n      if (iVar17 == 0x72e) goto LAB_000784dc;\n      if (iVar17 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }" if (parenthesized_expression "(0x709 < iVar17)" ( (binary_expression "0x709 < iVar17" number_literal < identifier) )) (compound_statement "{\n      puVar45 = puVar44;\n      if (iVar17 == 0x72e) goto LAB_000784dc;\n      if (iVar17 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }" { (expression_statement "puVar45 = puVar44;" (assignment_expression "puVar45 = puVar44" identifier = identifier) ;) (if_statement "if (iVar17 == 0x72e) goto LAB_000784dc;" if (parenthesized_expression "(iVar17 == 0x72e)" ( (binary_expression "iVar17 == 0x72e" identifier == number_literal) )) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;)) (if_statement "if (iVar17 != 0x73b) goto LAB_00078210;" if (parenthesized_expression "(iVar17 != 0x73b)" ( (binary_expression "iVar17 != 0x73b" identifier != number_literal) )) (goto_statement "goto LAB_00078210;" goto statement_identifier ;)) (goto_statement "goto LAB_00078104;" goto statement_identifier ;) })) (if_statement "if (iVar17 != 0) goto LAB_00078210;" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00078210;" goto statement_identifier ;)) (expression_statement "cs_00->recvlen = 0;" (assignment_expression "cs_00->recvlen = 0" (field_expression "cs_00->recvlen" identifier -> field_identifier) = number_literal) ;) })) (if_statement "if (puVar44 == (uint *)0x0) {\nLAB_000781c4:\n    cs_00->crLine = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar51) {\n        return;\n      }\n      (**(code **)(pcVar50 + 0x38be4))();\n      puVar45 = puVar44;\n      psVar37 = psVar47;\nLAB_00078f28:\n      ppStack_c0 = psStack_108->fn;\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,(share_channel *)0x0,\n                 (share_channel *)0xc);\n      (**(code **)(pcVar50 + 0x38124))(psVar46);\n      cs_00->recvlen = 0;\nLAB_000784dc:\n      psVar30 = (ssh_sharing_connstate *)((int)puVar45 + (int)(psVar37->recvbuf + -0x20));\n      psVar47 = psVar37;\n      do {\n        puVar44 = (uint *)((int)psVar30 + (-1 - (int)psVar47));\n        if (psVar47 == psVar30) {\n          cs_00->crLine = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar39 = cs_00->recvlen;\n        psVar37 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);\n        iVar17 = iVar39 + 1;\n        bVar1 = *(byte *)&psVar47->fn;\n        in_t3 = (uint)bVar1;\n        cs_00->recvlen = iVar17;\n        cs_00->recvbuf[iVar39] = bVar1;\n        psVar47 = psVar37;\n      } while (iVar17 < 4);\n      iVar39 = (**(code **)(pcVar50 + 0x38248))(*(int *)cs_00->recvbuf + 4);\n      cs_00->curr_packetlen = iVar39;\n      puVar45 = puVar44;\n      if (iVar39 - 5U < 0x400c) {\n        psVar46 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (psVar47 = psVar37, (int)psVar46 < iVar39) {\nLAB_00078104:\n          if (puVar45 == (uint *)0x0) {\n            cs_00->crLine = 0x73b;\n            puVar44 = (uint *)0x0;\n            goto LAB_00078214;\n          }\n          iVar39 = cs_00->recvlen;\n          uVar32 = *(uchar *)&psVar37->fn;\n          psVar37 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);\n          psVar46 = (ssh_sharing_connstate *)(iVar39 + 1);\n          cs_00->recvlen = (int)psVar46;\n          cs_00->recvbuf[iVar39] = uVar32;\n          puVar45 = (uint *)((int)puVar45 + -1);\n          iVar39 = cs_00->curr_packetlen;\n        }\n        bVar1 = cs_00->recvbuf[4];\n        puVar36 = cs_00->recvbuf + 5;\n        puVar25 = (undefined1 *)((int)&psVar46[-1].globreq_head + 3);\n        if (bVar1 != 0x5a) {\n          if (bVar1 < 0x5b) {\n            if (bVar1 != 2) {\n              if (2 < bVar1) {\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }\n              if (bVar1 != 1) {\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }\n              (*(*cs_00->sock)->close)(cs_00->sock);\n              cs_00->sock = (Socket)0x0;\n              share_try_cleanup(cs_00);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3);\n            if ((bVar1 == 0x62) &&\n               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)) {\n              psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);\n              iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0);\n              psVar30 = psStack_e8;\n              if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0);\n            if ((bVar1 == 0x61) && (3 < (int)puVar25)) {\n              ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar26 != (share_channel *)0x0) {\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar1 == 0x5c) {\n              if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar1) {\n              if (100 < bVar1) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)puVar25 < 0x10) {\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar41 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar35 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar43 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8);\n            psStack_e8 = psVar43;\n            pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0);\n            if (pvVar23 == (void *)0x0) {\n              psStack_e4 = psVar43;\n              psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;\n              ppVar16 = psVar46->fn;\n            }\n            else {\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)ppVar16;\n            cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8);\n            uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8));\n            if (pvVar23 != (void *)0x0) {\n              psVar19 = cs_00->parent;\n              uVar38 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (psVar46 != (ssh_sharing_connstate *)0x0) {\n              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\n        iVar39 = *(int *)(pcVar50 + 0x38144);\n        if (3 < (int)puVar25) {\n          iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n          if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n             (psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),\n             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8)) {\n            iVar39 = *(int *)(pcVar50 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pppVar14 = &psStack_e8->fn;\n          pppVar15 = &psStack_e8->fn;\n          psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)((int)&psStack_e8->fn + 2));\n          psVar46 = (ssh_sharing_connstate *)\n                    ((uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8)\n          ;\n          uVar41 = (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n          share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                            (uint)&cs_00->channels_by_server,(uint)psVar46,uVar41,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8));\n          *(char *)&psVar43->fn = (char)(uVar41 >> 0x18);\n          puVar36[(int)((int)pppVar14 + 1)] = (byte)(uVar41 >> 0x10);\n          *(char *)&psStack_108->fn = (char)(uVar41 >> 8);\n          puVar36[(int)((int)pppVar15 + 3)] = (byte)uVar41;\n          (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,0x5a,puVar36,puVar25,0);\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(iVar39 + -0x4114);\nLAB_000787a4:\n        while (pcVar18 == (char *)0x0) {\n          (**(code **)(pcVar50 + 0x38a34))\n                    (*(int *)(pcVar50 + 0x38144) + -0x3f38,*(int *)(pcVar50 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar50 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43);\n        }\n        share_disconnect(cs_00,pcVar18);\n        (**(code **)(pcVar50 + 0x38124))(pcVar18);\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }\n      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                  (*(int *)(pcVar50 + 0x38144) + -0x415c,iVar39);\nLAB_000781e4:\n      share_disconnect(cs_00,pcVar18);\n      (**(code **)(pcVar50 + 0x38124))(pcVar18);\n      puVar44 = puVar45;\n      psVar47 = psVar37;\nLAB_00078210:\n      cs_00->crLine = 0;\n    } while( true );\n  }" if (parenthesized_expression "(puVar44 == (uint *)0x0)" ( (binary_expression "puVar44 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000781c4:\n    cs_00->crLine = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar51) {\n        return;\n      }\n      (**(code **)(pcVar50 + 0x38be4))();\n      puVar45 = puVar44;\n      psVar37 = psVar47;\nLAB_00078f28:\n      ppStack_c0 = psStack_108->fn;\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,(share_channel *)0x0,\n                 (share_channel *)0xc);\n      (**(code **)(pcVar50 + 0x38124))(psVar46);\n      cs_00->recvlen = 0;\nLAB_000784dc:\n      psVar30 = (ssh_sharing_connstate *)((int)puVar45 + (int)(psVar37->recvbuf + -0x20));\n      psVar47 = psVar37;\n      do {\n        puVar44 = (uint *)((int)psVar30 + (-1 - (int)psVar47));\n        if (psVar47 == psVar30) {\n          cs_00->crLine = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar39 = cs_00->recvlen;\n        psVar37 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);\n        iVar17 = iVar39 + 1;\n        bVar1 = *(byte *)&psVar47->fn;\n        in_t3 = (uint)bVar1;\n        cs_00->recvlen = iVar17;\n        cs_00->recvbuf[iVar39] = bVar1;\n        psVar47 = psVar37;\n      } while (iVar17 < 4);\n      iVar39 = (**(code **)(pcVar50 + 0x38248))(*(int *)cs_00->recvbuf + 4);\n      cs_00->curr_packetlen = iVar39;\n      puVar45 = puVar44;\n      if (iVar39 - 5U < 0x400c) {\n        psVar46 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (psVar47 = psVar37, (int)psVar46 < iVar39) {\nLAB_00078104:\n          if (puVar45 == (uint *)0x0) {\n            cs_00->crLine = 0x73b;\n            puVar44 = (uint *)0x0;\n            goto LAB_00078214;\n          }\n          iVar39 = cs_00->recvlen;\n          uVar32 = *(uchar *)&psVar37->fn;\n          psVar37 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);\n          psVar46 = (ssh_sharing_connstate *)(iVar39 + 1);\n          cs_00->recvlen = (int)psVar46;\n          cs_00->recvbuf[iVar39] = uVar32;\n          puVar45 = (uint *)((int)puVar45 + -1);\n          iVar39 = cs_00->curr_packetlen;\n        }\n        bVar1 = cs_00->recvbuf[4];\n        puVar36 = cs_00->recvbuf + 5;\n        puVar25 = (undefined1 *)((int)&psVar46[-1].globreq_head + 3);\n        if (bVar1 != 0x5a) {\n          if (bVar1 < 0x5b) {\n            if (bVar1 != 2) {\n              if (2 < bVar1) {\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }\n              if (bVar1 != 1) {\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }\n              (*(*cs_00->sock)->close)(cs_00->sock);\n              cs_00->sock = (Socket)0x0;\n              share_try_cleanup(cs_00);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3);\n            if ((bVar1 == 0x62) &&\n               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)) {\n              psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);\n              iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0);\n              psVar30 = psStack_e8;\n              if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0);\n            if ((bVar1 == 0x61) && (3 < (int)puVar25)) {\n              ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar26 != (share_channel *)0x0) {\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar1 == 0x5c) {\n              if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar1) {\n              if (100 < bVar1) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)puVar25 < 0x10) {\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar41 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar35 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar43 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8);\n            psStack_e8 = psVar43;\n            pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0);\n            if (pvVar23 == (void *)0x0) {\n              psStack_e4 = psVar43;\n              psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;\n              ppVar16 = psVar46->fn;\n            }\n            else {\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)ppVar16;\n            cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8);\n            uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8));\n            if (pvVar23 != (void *)0x0) {\n              psVar19 = cs_00->parent;\n              uVar38 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (psVar46 != (ssh_sharing_connstate *)0x0) {\n              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\n        iVar39 = *(int *)(pcVar50 + 0x38144);\n        if (3 < (int)puVar25) {\n          iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n          if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n             (psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),\n             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8)) {\n            iVar39 = *(int *)(pcVar50 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pppVar14 = &psStack_e8->fn;\n          pppVar15 = &psStack_e8->fn;\n          psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)((int)&psStack_e8->fn + 2));\n          psVar46 = (ssh_sharing_connstate *)\n                    ((uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8)\n          ;\n          uVar41 = (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n          share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                            (uint)&cs_00->channels_by_server,(uint)psVar46,uVar41,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8));\n          *(char *)&psVar43->fn = (char)(uVar41 >> 0x18);\n          puVar36[(int)((int)pppVar14 + 1)] = (byte)(uVar41 >> 0x10);\n          *(char *)&psStack_108->fn = (char)(uVar41 >> 8);\n          puVar36[(int)((int)pppVar15 + 3)] = (byte)uVar41;\n          (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,0x5a,puVar36,puVar25,0);\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(iVar39 + -0x4114);\nLAB_000787a4:\n        while (pcVar18 == (char *)0x0) {\n          (**(code **)(pcVar50 + 0x38a34))\n                    (*(int *)(pcVar50 + 0x38144) + -0x3f38,*(int *)(pcVar50 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar50 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43);\n        }\n        share_disconnect(cs_00,pcVar18);\n        (**(code **)(pcVar50 + 0x38124))(pcVar18);\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }\n      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                  (*(int *)(pcVar50 + 0x38144) + -0x415c,iVar39);\nLAB_000781e4:\n      share_disconnect(cs_00,pcVar18);\n      (**(code **)(pcVar50 + 0x38124))(pcVar18);\n      puVar44 = puVar45;\n      psVar47 = psVar37;\nLAB_00078210:\n      cs_00->crLine = 0;\n    } while( true );\n  }" { (labeled_statement "LAB_000781c4:\n    cs_00->crLine = 0x709;" statement_identifier : (expression_statement "cs_00->crLine = 0x709;" (assignment_expression "cs_00->crLine = 0x709" (field_expression "cs_00->crLine" identifier -> field_identifier) = number_literal) ;)) (labeled_statement "LAB_00078214:\n    do {\n      if (iStack_bc == *piVar51) {\n        return;\n      }\n      (**(code **)(pcVar50 + 0x38be4))();\n      puVar45 = puVar44;\n      psVar37 = psVar47;\nLAB_00078f28:\n      ppStack_c0 = psStack_108->fn;\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,(share_channel *)0x0,\n                 (share_channel *)0xc);\n      (**(code **)(pcVar50 + 0x38124))(psVar46);\n      cs_00->recvlen = 0;\nLAB_000784dc:\n      psVar30 = (ssh_sharing_connstate *)((int)puVar45 + (int)(psVar37->recvbuf + -0x20));\n      psVar47 = psVar37;\n      do {\n        puVar44 = (uint *)((int)psVar30 + (-1 - (int)psVar47));\n        if (psVar47 == psVar30) {\n          cs_00->crLine = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar39 = cs_00->recvlen;\n        psVar37 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);\n        iVar17 = iVar39 + 1;\n        bVar1 = *(byte *)&psVar47->fn;\n        in_t3 = (uint)bVar1;\n        cs_00->recvlen = iVar17;\n        cs_00->recvbuf[iVar39] = bVar1;\n        psVar47 = psVar37;\n      } while (iVar17 < 4);\n      iVar39 = (**(code **)(pcVar50 + 0x38248))(*(int *)cs_00->recvbuf + 4);\n      cs_00->curr_packetlen = iVar39;\n      puVar45 = puVar44;\n      if (iVar39 - 5U < 0x400c) {\n        psVar46 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (psVar47 = psVar37, (int)psVar46 < iVar39) {\nLAB_00078104:\n          if (puVar45 == (uint *)0x0) {\n            cs_00->crLine = 0x73b;\n            puVar44 = (uint *)0x0;\n            goto LAB_00078214;\n          }\n          iVar39 = cs_00->recvlen;\n          uVar32 = *(uchar *)&psVar37->fn;\n          psVar37 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);\n          psVar46 = (ssh_sharing_connstate *)(iVar39 + 1);\n          cs_00->recvlen = (int)psVar46;\n          cs_00->recvbuf[iVar39] = uVar32;\n          puVar45 = (uint *)((int)puVar45 + -1);\n          iVar39 = cs_00->curr_packetlen;\n        }\n        bVar1 = cs_00->recvbuf[4];\n        puVar36 = cs_00->recvbuf + 5;\n        puVar25 = (undefined1 *)((int)&psVar46[-1].globreq_head + 3);\n        if (bVar1 != 0x5a) {\n          if (bVar1 < 0x5b) {\n            if (bVar1 != 2) {\n              if (2 < bVar1) {\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }\n              if (bVar1 != 1) {\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }\n              (*(*cs_00->sock)->close)(cs_00->sock);\n              cs_00->sock = (Socket)0x0;\n              share_try_cleanup(cs_00);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3);\n            if ((bVar1 == 0x62) &&\n               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)) {\n              psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);\n              iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0);\n              psVar30 = psStack_e8;\n              if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0);\n            if ((bVar1 == 0x61) && (3 < (int)puVar25)) {\n              ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar26 != (share_channel *)0x0) {\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar1 == 0x5c) {\n              if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar1) {\n              if (100 < bVar1) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)puVar25 < 0x10) {\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar41 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar35 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar43 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8);\n            psStack_e8 = psVar43;\n            pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0);\n            if (pvVar23 == (void *)0x0) {\n              psStack_e4 = psVar43;\n              psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;\n              ppVar16 = psVar46->fn;\n            }\n            else {\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)ppVar16;\n            cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8);\n            uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8));\n            if (pvVar23 != (void *)0x0) {\n              psVar19 = cs_00->parent;\n              uVar38 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (psVar46 != (ssh_sharing_connstate *)0x0) {\n              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\n        iVar39 = *(int *)(pcVar50 + 0x38144);\n        if (3 < (int)puVar25) {\n          iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n          if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n             (psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),\n             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8)) {\n            iVar39 = *(int *)(pcVar50 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pppVar14 = &psStack_e8->fn;\n          pppVar15 = &psStack_e8->fn;\n          psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)((int)&psStack_e8->fn + 2));\n          psVar46 = (ssh_sharing_connstate *)\n                    ((uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8)\n          ;\n          uVar41 = (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n          share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                            (uint)&cs_00->channels_by_server,(uint)psVar46,uVar41,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8));\n          *(char *)&psVar43->fn = (char)(uVar41 >> 0x18);\n          puVar36[(int)((int)pppVar14 + 1)] = (byte)(uVar41 >> 0x10);\n          *(char *)&psStack_108->fn = (char)(uVar41 >> 8);\n          puVar36[(int)((int)pppVar15 + 3)] = (byte)uVar41;\n          (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,0x5a,puVar36,puVar25,0);\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(iVar39 + -0x4114);\nLAB_000787a4:\n        while (pcVar18 == (char *)0x0) {\n          (**(code **)(pcVar50 + 0x38a34))\n                    (*(int *)(pcVar50 + 0x38144) + -0x3f38,*(int *)(pcVar50 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar50 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43);\n        }\n        share_disconnect(cs_00,pcVar18);\n        (**(code **)(pcVar50 + 0x38124))(pcVar18);\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }\n      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                  (*(int *)(pcVar50 + 0x38144) + -0x415c,iVar39);\nLAB_000781e4:\n      share_disconnect(cs_00,pcVar18);\n      (**(code **)(pcVar50 + 0x38124))(pcVar18);\n      puVar44 = puVar45;\n      psVar47 = psVar37;\nLAB_00078210:\n      cs_00->crLine = 0;\n    } while( true );" statement_identifier : (do_statement "do {\n      if (iStack_bc == *piVar51) {\n        return;\n      }\n      (**(code **)(pcVar50 + 0x38be4))();\n      puVar45 = puVar44;\n      psVar37 = psVar47;\nLAB_00078f28:\n      ppStack_c0 = psStack_108->fn;\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,(share_channel *)0x0,\n                 (share_channel *)0xc);\n      (**(code **)(pcVar50 + 0x38124))(psVar46);\n      cs_00->recvlen = 0;\nLAB_000784dc:\n      psVar30 = (ssh_sharing_connstate *)((int)puVar45 + (int)(psVar37->recvbuf + -0x20));\n      psVar47 = psVar37;\n      do {\n        puVar44 = (uint *)((int)psVar30 + (-1 - (int)psVar47));\n        if (psVar47 == psVar30) {\n          cs_00->crLine = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar39 = cs_00->recvlen;\n        psVar37 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);\n        iVar17 = iVar39 + 1;\n        bVar1 = *(byte *)&psVar47->fn;\n        in_t3 = (uint)bVar1;\n        cs_00->recvlen = iVar17;\n        cs_00->recvbuf[iVar39] = bVar1;\n        psVar47 = psVar37;\n      } while (iVar17 < 4);\n      iVar39 = (**(code **)(pcVar50 + 0x38248))(*(int *)cs_00->recvbuf + 4);\n      cs_00->curr_packetlen = iVar39;\n      puVar45 = puVar44;\n      if (iVar39 - 5U < 0x400c) {\n        psVar46 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (psVar47 = psVar37, (int)psVar46 < iVar39) {\nLAB_00078104:\n          if (puVar45 == (uint *)0x0) {\n            cs_00->crLine = 0x73b;\n            puVar44 = (uint *)0x0;\n            goto LAB_00078214;\n          }\n          iVar39 = cs_00->recvlen;\n          uVar32 = *(uchar *)&psVar37->fn;\n          psVar37 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);\n          psVar46 = (ssh_sharing_connstate *)(iVar39 + 1);\n          cs_00->recvlen = (int)psVar46;\n          cs_00->recvbuf[iVar39] = uVar32;\n          puVar45 = (uint *)((int)puVar45 + -1);\n          iVar39 = cs_00->curr_packetlen;\n        }\n        bVar1 = cs_00->recvbuf[4];\n        puVar36 = cs_00->recvbuf + 5;\n        puVar25 = (undefined1 *)((int)&psVar46[-1].globreq_head + 3);\n        if (bVar1 != 0x5a) {\n          if (bVar1 < 0x5b) {\n            if (bVar1 != 2) {\n              if (2 < bVar1) {\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }\n              if (bVar1 != 1) {\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }\n              (*(*cs_00->sock)->close)(cs_00->sock);\n              cs_00->sock = (Socket)0x0;\n              share_try_cleanup(cs_00);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3);\n            if ((bVar1 == 0x62) &&\n               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)) {\n              psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);\n              iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0);\n              psVar30 = psStack_e8;\n              if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0);\n            if ((bVar1 == 0x61) && (3 < (int)puVar25)) {\n              ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar26 != (share_channel *)0x0) {\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar1 == 0x5c) {\n              if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar1) {\n              if (100 < bVar1) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)puVar25 < 0x10) {\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar41 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar35 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar43 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8);\n            psStack_e8 = psVar43;\n            pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0);\n            if (pvVar23 == (void *)0x0) {\n              psStack_e4 = psVar43;\n              psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;\n              ppVar16 = psVar46->fn;\n            }\n            else {\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)ppVar16;\n            cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8);\n            uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8));\n            if (pvVar23 != (void *)0x0) {\n              psVar19 = cs_00->parent;\n              uVar38 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (psVar46 != (ssh_sharing_connstate *)0x0) {\n              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\n        iVar39 = *(int *)(pcVar50 + 0x38144);\n        if (3 < (int)puVar25) {\n          iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n          if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n             (psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),\n             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8)) {\n            iVar39 = *(int *)(pcVar50 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pppVar14 = &psStack_e8->fn;\n          pppVar15 = &psStack_e8->fn;\n          psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)((int)&psStack_e8->fn + 2));\n          psVar46 = (ssh_sharing_connstate *)\n                    ((uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8)\n          ;\n          uVar41 = (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n          share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                            (uint)&cs_00->channels_by_server,(uint)psVar46,uVar41,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8));\n          *(char *)&psVar43->fn = (char)(uVar41 >> 0x18);\n          puVar36[(int)((int)pppVar14 + 1)] = (byte)(uVar41 >> 0x10);\n          *(char *)&psStack_108->fn = (char)(uVar41 >> 8);\n          puVar36[(int)((int)pppVar15 + 3)] = (byte)uVar41;\n          (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,0x5a,puVar36,puVar25,0);\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(iVar39 + -0x4114);\nLAB_000787a4:\n        while (pcVar18 == (char *)0x0) {\n          (**(code **)(pcVar50 + 0x38a34))\n                    (*(int *)(pcVar50 + 0x38144) + -0x3f38,*(int *)(pcVar50 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar50 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43);\n        }\n        share_disconnect(cs_00,pcVar18);\n        (**(code **)(pcVar50 + 0x38124))(pcVar18);\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }\n      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                  (*(int *)(pcVar50 + 0x38144) + -0x415c,iVar39);\nLAB_000781e4:\n      share_disconnect(cs_00,pcVar18);\n      (**(code **)(pcVar50 + 0x38124))(pcVar18);\n      puVar44 = puVar45;\n      psVar47 = psVar37;\nLAB_00078210:\n      cs_00->crLine = 0;\n    } while( true );" do (compound_statement "{\n      if (iStack_bc == *piVar51) {\n        return;\n      }\n      (**(code **)(pcVar50 + 0x38be4))();\n      puVar45 = puVar44;\n      psVar37 = psVar47;\nLAB_00078f28:\n      ppStack_c0 = psStack_108->fn;\n      send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,(share_channel *)0x0,\n                 (share_channel *)0xc);\n      (**(code **)(pcVar50 + 0x38124))(psVar46);\n      cs_00->recvlen = 0;\nLAB_000784dc:\n      psVar30 = (ssh_sharing_connstate *)((int)puVar45 + (int)(psVar37->recvbuf + -0x20));\n      psVar47 = psVar37;\n      do {\n        puVar44 = (uint *)((int)psVar30 + (-1 - (int)psVar47));\n        if (psVar47 == psVar30) {\n          cs_00->crLine = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar39 = cs_00->recvlen;\n        psVar37 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);\n        iVar17 = iVar39 + 1;\n        bVar1 = *(byte *)&psVar47->fn;\n        in_t3 = (uint)bVar1;\n        cs_00->recvlen = iVar17;\n        cs_00->recvbuf[iVar39] = bVar1;\n        psVar47 = psVar37;\n      } while (iVar17 < 4);\n      iVar39 = (**(code **)(pcVar50 + 0x38248))(*(int *)cs_00->recvbuf + 4);\n      cs_00->curr_packetlen = iVar39;\n      puVar45 = puVar44;\n      if (iVar39 - 5U < 0x400c) {\n        psVar46 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (psVar47 = psVar37, (int)psVar46 < iVar39) {\nLAB_00078104:\n          if (puVar45 == (uint *)0x0) {\n            cs_00->crLine = 0x73b;\n            puVar44 = (uint *)0x0;\n            goto LAB_00078214;\n          }\n          iVar39 = cs_00->recvlen;\n          uVar32 = *(uchar *)&psVar37->fn;\n          psVar37 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);\n          psVar46 = (ssh_sharing_connstate *)(iVar39 + 1);\n          cs_00->recvlen = (int)psVar46;\n          cs_00->recvbuf[iVar39] = uVar32;\n          puVar45 = (uint *)((int)puVar45 + -1);\n          iVar39 = cs_00->curr_packetlen;\n        }\n        bVar1 = cs_00->recvbuf[4];\n        puVar36 = cs_00->recvbuf + 5;\n        puVar25 = (undefined1 *)((int)&psVar46[-1].globreq_head + 3);\n        if (bVar1 != 0x5a) {\n          if (bVar1 < 0x5b) {\n            if (bVar1 != 2) {\n              if (2 < bVar1) {\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }\n              if (bVar1 != 1) {\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }\n              (*(*cs_00->sock)->close)(cs_00->sock);\n              cs_00->sock = (Socket)0x0;\n              share_try_cleanup(cs_00);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3);\n            if ((bVar1 == 0x62) &&\n               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)) {\n              psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);\n              iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0);\n              psVar30 = psStack_e8;\n              if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0);\n            if ((bVar1 == 0x61) && (3 < (int)puVar25)) {\n              ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar26 != (share_channel *)0x0) {\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar1 == 0x5c) {\n              if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar1) {\n              if (100 < bVar1) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)puVar25 < 0x10) {\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar41 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar35 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar43 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8);\n            psStack_e8 = psVar43;\n            pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0);\n            if (pvVar23 == (void *)0x0) {\n              psStack_e4 = psVar43;\n              psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;\n              ppVar16 = psVar46->fn;\n            }\n            else {\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)ppVar16;\n            cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8);\n            uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8));\n            if (pvVar23 != (void *)0x0) {\n              psVar19 = cs_00->parent;\n              uVar38 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (psVar46 != (ssh_sharing_connstate *)0x0) {\n              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\n        iVar39 = *(int *)(pcVar50 + 0x38144);\n        if (3 < (int)puVar25) {\n          iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n          if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n             (psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),\n             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8)) {\n            iVar39 = *(int *)(pcVar50 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pppVar14 = &psStack_e8->fn;\n          pppVar15 = &psStack_e8->fn;\n          psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)((int)&psStack_e8->fn + 2));\n          psVar46 = (ssh_sharing_connstate *)\n                    ((uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8)\n          ;\n          uVar41 = (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n          share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                            (uint)&cs_00->channels_by_server,(uint)psVar46,uVar41,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8));\n          *(char *)&psVar43->fn = (char)(uVar41 >> 0x18);\n          puVar36[(int)((int)pppVar14 + 1)] = (byte)(uVar41 >> 0x10);\n          *(char *)&psStack_108->fn = (char)(uVar41 >> 8);\n          puVar36[(int)((int)pppVar15 + 3)] = (byte)uVar41;\n          (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,0x5a,puVar36,puVar25,0);\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(iVar39 + -0x4114);\nLAB_000787a4:\n        while (pcVar18 == (char *)0x0) {\n          (**(code **)(pcVar50 + 0x38a34))\n                    (*(int *)(pcVar50 + 0x38144) + -0x3f38,*(int *)(pcVar50 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar50 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43);\n        }\n        share_disconnect(cs_00,pcVar18);\n        (**(code **)(pcVar50 + 0x38124))(pcVar18);\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }\n      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                  (*(int *)(pcVar50 + 0x38144) + -0x415c,iVar39);\nLAB_000781e4:\n      share_disconnect(cs_00,pcVar18);\n      (**(code **)(pcVar50 + 0x38124))(pcVar18);\n      puVar44 = puVar45;\n      psVar47 = psVar37;\nLAB_00078210:\n      cs_00->crLine = 0;\n    }" { (if_statement "if (iStack_bc == *piVar51) {\n        return;\n      }" if (parenthesized_expression "(iStack_bc == *piVar51)" ( (binary_expression "iStack_bc == *piVar51" identifier == (pointer_expression "*piVar51" * identifier)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcVar50 + 0x38be4))();" (call_expression "(**(code **)(pcVar50 + 0x38be4))()" (parenthesized_expression "(**(code **)(pcVar50 + 0x38be4))" ( (pointer_expression "**(code **)(pcVar50 + 0x38be4)" * (pointer_expression "*(code **)(pcVar50 + 0x38be4)" * (cast_expression "(code **)(pcVar50 + 0x38be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38be4)" ( (binary_expression "pcVar50 + 0x38be4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "puVar45 = puVar44;" (assignment_expression "puVar45 = puVar44" identifier = identifier) ;) (expression_statement "psVar37 = psVar47;" (assignment_expression "psVar37 = psVar47" identifier = identifier) ;) (labeled_statement "LAB_00078f28:\n      ppStack_c0 = psStack_108->fn;" statement_identifier : (expression_statement "ppStack_c0 = psStack_108->fn;" (assignment_expression "ppStack_c0 = psStack_108->fn" identifier = (field_expression "psStack_108->fn" identifier -> field_identifier)) ;)) (expression_statement "send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,(share_channel *)0x0,\n                 (share_channel *)0xc);" (call_expression "send_packet_to_downstream\n                ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,(share_channel *)0x0,\n                 (share_channel *)0xc)" identifier (argument_list "((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,(share_channel *)0x0,\n                 (share_channel *)0xc)" ( (cast_expression "(ssh_sharing_connstate *)&cs_00->sock" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cs_00->sock" & (field_expression "cs_00->sock" identifier -> field_identifier))) , number_literal , (pointer_expression "&ppStack_c0" & identifier) , number_literal , (cast_expression "(share_channel *)0x0" ( (type_descriptor "share_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(share_channel *)0xc" ( (type_descriptor "share_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "(**(code **)(pcVar50 + 0x38124))(psVar46);" (call_expression "(**(code **)(pcVar50 + 0x38124))(psVar46)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38124))" ( (pointer_expression "**(code **)(pcVar50 + 0x38124)" * (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(psVar46)" ( identifier ))) ;) (expression_statement "cs_00->recvlen = 0;" (assignment_expression "cs_00->recvlen = 0" (field_expression "cs_00->recvlen" identifier -> field_identifier) = number_literal) ;) (labeled_statement "LAB_000784dc:\n      psVar30 = (ssh_sharing_connstate *)((int)puVar45 + (int)(psVar37->recvbuf + -0x20));" statement_identifier : (expression_statement "psVar30 = (ssh_sharing_connstate *)((int)puVar45 + (int)(psVar37->recvbuf + -0x20));" (assignment_expression "psVar30 = (ssh_sharing_connstate *)((int)puVar45 + (int)(psVar37->recvbuf + -0x20))" identifier = (cast_expression "(ssh_sharing_connstate *)((int)puVar45 + (int)(psVar37->recvbuf + -0x20))" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar45 + (int)(psVar37->recvbuf + -0x20))" ( (binary_expression "(int)puVar45 + (int)(psVar37->recvbuf + -0x20)" (cast_expression "(int)puVar45" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(psVar37->recvbuf + -0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(psVar37->recvbuf + -0x20)" ( (binary_expression "psVar37->recvbuf + -0x20" (field_expression "psVar37->recvbuf" identifier -> field_identifier) + number_literal) )))) )))) ;)) (expression_statement "psVar47 = psVar37;" (assignment_expression "psVar47 = psVar37" identifier = identifier) ;) (do_statement "do {\n        puVar44 = (uint *)((int)psVar30 + (-1 - (int)psVar47));\n        if (psVar47 == psVar30) {\n          cs_00->crLine = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar39 = cs_00->recvlen;\n        psVar37 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);\n        iVar17 = iVar39 + 1;\n        bVar1 = *(byte *)&psVar47->fn;\n        in_t3 = (uint)bVar1;\n        cs_00->recvlen = iVar17;\n        cs_00->recvbuf[iVar39] = bVar1;\n        psVar47 = psVar37;\n      } while (iVar17 < 4);" do (compound_statement "{\n        puVar44 = (uint *)((int)psVar30 + (-1 - (int)psVar47));\n        if (psVar47 == psVar30) {\n          cs_00->crLine = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar39 = cs_00->recvlen;\n        psVar37 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);\n        iVar17 = iVar39 + 1;\n        bVar1 = *(byte *)&psVar47->fn;\n        in_t3 = (uint)bVar1;\n        cs_00->recvlen = iVar17;\n        cs_00->recvbuf[iVar39] = bVar1;\n        psVar47 = psVar37;\n      }" { (expression_statement "puVar44 = (uint *)((int)psVar30 + (-1 - (int)psVar47));" (assignment_expression "puVar44 = (uint *)((int)psVar30 + (-1 - (int)psVar47))" identifier = (cast_expression "(uint *)((int)psVar30 + (-1 - (int)psVar47))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar30 + (-1 - (int)psVar47))" ( (binary_expression "(int)psVar30 + (-1 - (int)psVar47)" (cast_expression "(int)psVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-1 - (int)psVar47)" ( (binary_expression "-1 - (int)psVar47" number_literal - (cast_expression "(int)psVar47" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (if_statement "if (psVar47 == psVar30) {\n          cs_00->crLine = 0x72e;\n          goto LAB_00078214;\n        }" if (parenthesized_expression "(psVar47 == psVar30)" ( (binary_expression "psVar47 == psVar30" identifier == identifier) )) (compound_statement "{\n          cs_00->crLine = 0x72e;\n          goto LAB_00078214;\n        }" { (expression_statement "cs_00->crLine = 0x72e;" (assignment_expression "cs_00->crLine = 0x72e" (field_expression "cs_00->crLine" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_00078214;" goto statement_identifier ;) })) (expression_statement "iVar39 = cs_00->recvlen;" (assignment_expression "iVar39 = cs_00->recvlen" identifier = (field_expression "cs_00->recvlen" identifier -> field_identifier)) ;) (expression_statement "psVar37 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);" (assignment_expression "psVar37 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1)" identifier = (cast_expression "(ssh_sharing_connstate *)((int)&psVar47->fn + 1)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar47->fn + 1)" ( (binary_expression "(int)&psVar47->fn + 1" (cast_expression "(int)&psVar47->fn" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar47->fn" & (field_expression "psVar47->fn" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "iVar17 = iVar39 + 1;" (assignment_expression "iVar17 = iVar39 + 1" identifier = (binary_expression "iVar39 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = *(byte *)&psVar47->fn;" (assignment_expression "bVar1 = *(byte *)&psVar47->fn" identifier = (pointer_expression "*(byte *)&psVar47->fn" * (cast_expression "(byte *)&psVar47->fn" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar47->fn" & (field_expression "psVar47->fn" identifier -> field_identifier))))) ;) (expression_statement "in_t3 = (uint)bVar1;" (assignment_expression "in_t3 = (uint)bVar1" identifier = (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "cs_00->recvlen = iVar17;" (assignment_expression "cs_00->recvlen = iVar17" (field_expression "cs_00->recvlen" identifier -> field_identifier) = identifier) ;) (expression_statement "cs_00->recvbuf[iVar39] = bVar1;" (assignment_expression "cs_00->recvbuf[iVar39] = bVar1" (subscript_expression "cs_00->recvbuf[iVar39]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "psVar47 = psVar37;" (assignment_expression "psVar47 = psVar37" identifier = identifier) ;) }) while (parenthesized_expression "(iVar17 < 4)" ( (binary_expression "iVar17 < 4" identifier < number_literal) )) ;) (expression_statement "iVar39 = (**(code **)(pcVar50 + 0x38248))(*(int *)cs_00->recvbuf + 4);" (assignment_expression "iVar39 = (**(code **)(pcVar50 + 0x38248))(*(int *)cs_00->recvbuf + 4)" identifier = (call_expression "(**(code **)(pcVar50 + 0x38248))(*(int *)cs_00->recvbuf + 4)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38248))" ( (pointer_expression "**(code **)(pcVar50 + 0x38248)" * (pointer_expression "*(code **)(pcVar50 + 0x38248)" * (cast_expression "(code **)(pcVar50 + 0x38248)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38248)" ( (binary_expression "pcVar50 + 0x38248" identifier + number_literal) ))))) )) (argument_list "(*(int *)cs_00->recvbuf + 4)" ( (binary_expression "*(int *)cs_00->recvbuf + 4" (pointer_expression "*(int *)cs_00->recvbuf" * (cast_expression "(int *)cs_00->recvbuf" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "cs_00->recvbuf" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "cs_00->curr_packetlen = iVar39;" (assignment_expression "cs_00->curr_packetlen = iVar39" (field_expression "cs_00->curr_packetlen" identifier -> field_identifier) = identifier) ;) (expression_statement "puVar45 = puVar44;" (assignment_expression "puVar45 = puVar44" identifier = identifier) ;) (if_statement "if (iVar39 - 5U < 0x400c) {\n        psVar46 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (psVar47 = psVar37, (int)psVar46 < iVar39) {\nLAB_00078104:\n          if (puVar45 == (uint *)0x0) {\n            cs_00->crLine = 0x73b;\n            puVar44 = (uint *)0x0;\n            goto LAB_00078214;\n          }\n          iVar39 = cs_00->recvlen;\n          uVar32 = *(uchar *)&psVar37->fn;\n          psVar37 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);\n          psVar46 = (ssh_sharing_connstate *)(iVar39 + 1);\n          cs_00->recvlen = (int)psVar46;\n          cs_00->recvbuf[iVar39] = uVar32;\n          puVar45 = (uint *)((int)puVar45 + -1);\n          iVar39 = cs_00->curr_packetlen;\n        }\n        bVar1 = cs_00->recvbuf[4];\n        puVar36 = cs_00->recvbuf + 5;\n        puVar25 = (undefined1 *)((int)&psVar46[-1].globreq_head + 3);\n        if (bVar1 != 0x5a) {\n          if (bVar1 < 0x5b) {\n            if (bVar1 != 2) {\n              if (2 < bVar1) {\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }\n              if (bVar1 != 1) {\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }\n              (*(*cs_00->sock)->close)(cs_00->sock);\n              cs_00->sock = (Socket)0x0;\n              share_try_cleanup(cs_00);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3);\n            if ((bVar1 == 0x62) &&\n               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)) {\n              psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);\n              iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0);\n              psVar30 = psStack_e8;\n              if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0);\n            if ((bVar1 == 0x61) && (3 < (int)puVar25)) {\n              ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar26 != (share_channel *)0x0) {\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar1 == 0x5c) {\n              if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar1) {\n              if (100 < bVar1) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)puVar25 < 0x10) {\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar41 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar35 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar43 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8);\n            psStack_e8 = psVar43;\n            pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0);\n            if (pvVar23 == (void *)0x0) {\n              psStack_e4 = psVar43;\n              psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;\n              ppVar16 = psVar46->fn;\n            }\n            else {\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)ppVar16;\n            cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8);\n            uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8));\n            if (pvVar23 != (void *)0x0) {\n              psVar19 = cs_00->parent;\n              uVar38 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (psVar46 != (ssh_sharing_connstate *)0x0) {\n              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\n        iVar39 = *(int *)(pcVar50 + 0x38144);\n        if (3 < (int)puVar25) {\n          iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n          if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n             (psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),\n             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8)) {\n            iVar39 = *(int *)(pcVar50 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pppVar14 = &psStack_e8->fn;\n          pppVar15 = &psStack_e8->fn;\n          psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)((int)&psStack_e8->fn + 2));\n          psVar46 = (ssh_sharing_connstate *)\n                    ((uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8)\n          ;\n          uVar41 = (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n          share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                            (uint)&cs_00->channels_by_server,(uint)psVar46,uVar41,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8));\n          *(char *)&psVar43->fn = (char)(uVar41 >> 0x18);\n          puVar36[(int)((int)pppVar14 + 1)] = (byte)(uVar41 >> 0x10);\n          *(char *)&psStack_108->fn = (char)(uVar41 >> 8);\n          puVar36[(int)((int)pppVar15 + 3)] = (byte)uVar41;\n          (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,0x5a,puVar36,puVar25,0);\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(iVar39 + -0x4114);\nLAB_000787a4:\n        while (pcVar18 == (char *)0x0) {\n          (**(code **)(pcVar50 + 0x38a34))\n                    (*(int *)(pcVar50 + 0x38144) + -0x3f38,*(int *)(pcVar50 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar50 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43);\n        }\n        share_disconnect(cs_00,pcVar18);\n        (**(code **)(pcVar50 + 0x38124))(pcVar18);\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }" if (parenthesized_expression "(iVar39 - 5U < 0x400c)" ( (binary_expression "iVar39 - 5U < 0x400c" (binary_expression "iVar39 - 5U" identifier - number_literal) < number_literal) )) (compound_statement "{\n        psVar46 = (ssh_sharing_connstate *)cs_00->recvlen;\n        while (psVar47 = psVar37, (int)psVar46 < iVar39) {\nLAB_00078104:\n          if (puVar45 == (uint *)0x0) {\n            cs_00->crLine = 0x73b;\n            puVar44 = (uint *)0x0;\n            goto LAB_00078214;\n          }\n          iVar39 = cs_00->recvlen;\n          uVar32 = *(uchar *)&psVar37->fn;\n          psVar37 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);\n          psVar46 = (ssh_sharing_connstate *)(iVar39 + 1);\n          cs_00->recvlen = (int)psVar46;\n          cs_00->recvbuf[iVar39] = uVar32;\n          puVar45 = (uint *)((int)puVar45 + -1);\n          iVar39 = cs_00->curr_packetlen;\n        }\n        bVar1 = cs_00->recvbuf[4];\n        puVar36 = cs_00->recvbuf + 5;\n        puVar25 = (undefined1 *)((int)&psVar46[-1].globreq_head + 3);\n        if (bVar1 != 0x5a) {\n          if (bVar1 < 0x5b) {\n            if (bVar1 != 2) {\n              if (2 < bVar1) {\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }\n              if (bVar1 != 1) {\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }\n              (*(*cs_00->sock)->close)(cs_00->sock);\n              cs_00->sock = (Socket)0x0;\n              share_try_cleanup(cs_00);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3);\n            if ((bVar1 == 0x62) &&\n               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)) {\n              psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);\n              iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0);\n              psVar30 = psStack_e8;\n              if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0);\n            if ((bVar1 == 0x61) && (3 < (int)puVar25)) {\n              ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar26 != (share_channel *)0x0) {\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar1 == 0x5c) {\n              if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar1) {\n              if (100 < bVar1) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)puVar25 < 0x10) {\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar41 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar35 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar43 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8);\n            psStack_e8 = psVar43;\n            pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0);\n            if (pvVar23 == (void *)0x0) {\n              psStack_e4 = psVar43;\n              psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;\n              ppVar16 = psVar46->fn;\n            }\n            else {\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)ppVar16;\n            cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8);\n            uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8));\n            if (pvVar23 != (void *)0x0) {\n              psVar19 = cs_00->parent;\n              uVar38 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (psVar46 != (ssh_sharing_connstate *)0x0) {\n              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\n        iVar39 = *(int *)(pcVar50 + 0x38144);\n        if (3 < (int)puVar25) {\n          iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n          if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n             (psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),\n             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8)) {\n            iVar39 = *(int *)(pcVar50 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pppVar14 = &psStack_e8->fn;\n          pppVar15 = &psStack_e8->fn;\n          psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)((int)&psStack_e8->fn + 2));\n          psVar46 = (ssh_sharing_connstate *)\n                    ((uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8)\n          ;\n          uVar41 = (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n          share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                            (uint)&cs_00->channels_by_server,(uint)psVar46,uVar41,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8));\n          *(char *)&psVar43->fn = (char)(uVar41 >> 0x18);\n          puVar36[(int)((int)pppVar14 + 1)] = (byte)(uVar41 >> 0x10);\n          *(char *)&psStack_108->fn = (char)(uVar41 >> 8);\n          puVar36[(int)((int)pppVar15 + 3)] = (byte)uVar41;\n          (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,0x5a,puVar36,puVar25,0);\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(iVar39 + -0x4114);\nLAB_000787a4:\n        while (pcVar18 == (char *)0x0) {\n          (**(code **)(pcVar50 + 0x38a34))\n                    (*(int *)(pcVar50 + 0x38144) + -0x3f38,*(int *)(pcVar50 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar50 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43);\n        }\n        share_disconnect(cs_00,pcVar18);\n        (**(code **)(pcVar50 + 0x38124))(pcVar18);\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }" { (expression_statement "psVar46 = (ssh_sharing_connstate *)cs_00->recvlen;" (assignment_expression "psVar46 = (ssh_sharing_connstate *)cs_00->recvlen" identifier = (cast_expression "(ssh_sharing_connstate *)cs_00->recvlen" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cs_00->recvlen" identifier -> field_identifier))) ;) (while_statement "while (psVar47 = psVar37, (int)psVar46 < iVar39) {\nLAB_00078104:\n          if (puVar45 == (uint *)0x0) {\n            cs_00->crLine = 0x73b;\n            puVar44 = (uint *)0x0;\n            goto LAB_00078214;\n          }\n          iVar39 = cs_00->recvlen;\n          uVar32 = *(uchar *)&psVar37->fn;\n          psVar37 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);\n          psVar46 = (ssh_sharing_connstate *)(iVar39 + 1);\n          cs_00->recvlen = (int)psVar46;\n          cs_00->recvbuf[iVar39] = uVar32;\n          puVar45 = (uint *)((int)puVar45 + -1);\n          iVar39 = cs_00->curr_packetlen;\n        }" while (parenthesized_expression "(psVar47 = psVar37, (int)psVar46 < iVar39)" ( (comma_expression "psVar47 = psVar37, (int)psVar46 < iVar39" (assignment_expression "psVar47 = psVar37" identifier = identifier) , (binary_expression "(int)psVar46 < iVar39" (cast_expression "(int)psVar46" ( (type_descriptor "int" primitive_type) ) identifier) < identifier)) )) (compound_statement "{\nLAB_00078104:\n          if (puVar45 == (uint *)0x0) {\n            cs_00->crLine = 0x73b;\n            puVar44 = (uint *)0x0;\n            goto LAB_00078214;\n          }\n          iVar39 = cs_00->recvlen;\n          uVar32 = *(uchar *)&psVar37->fn;\n          psVar37 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);\n          psVar46 = (ssh_sharing_connstate *)(iVar39 + 1);\n          cs_00->recvlen = (int)psVar46;\n          cs_00->recvbuf[iVar39] = uVar32;\n          puVar45 = (uint *)((int)puVar45 + -1);\n          iVar39 = cs_00->curr_packetlen;\n        }" { (labeled_statement "LAB_00078104:\n          if (puVar45 == (uint *)0x0) {\n            cs_00->crLine = 0x73b;\n            puVar44 = (uint *)0x0;\n            goto LAB_00078214;\n          }" statement_identifier : (if_statement "if (puVar45 == (uint *)0x0) {\n            cs_00->crLine = 0x73b;\n            puVar44 = (uint *)0x0;\n            goto LAB_00078214;\n          }" if (parenthesized_expression "(puVar45 == (uint *)0x0)" ( (binary_expression "puVar45 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            cs_00->crLine = 0x73b;\n            puVar44 = (uint *)0x0;\n            goto LAB_00078214;\n          }" { (expression_statement "cs_00->crLine = 0x73b;" (assignment_expression "cs_00->crLine = 0x73b" (field_expression "cs_00->crLine" identifier -> field_identifier) = number_literal) ;) (expression_statement "puVar44 = (uint *)0x0;" (assignment_expression "puVar44 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00078214;" goto statement_identifier ;) }))) (expression_statement "iVar39 = cs_00->recvlen;" (assignment_expression "iVar39 = cs_00->recvlen" identifier = (field_expression "cs_00->recvlen" identifier -> field_identifier)) ;) (expression_statement "uVar32 = *(uchar *)&psVar37->fn;" (assignment_expression "uVar32 = *(uchar *)&psVar37->fn" identifier = (pointer_expression "*(uchar *)&psVar37->fn" * (cast_expression "(uchar *)&psVar37->fn" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar37->fn" & (field_expression "psVar37->fn" identifier -> field_identifier))))) ;) (expression_statement "psVar37 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);" (assignment_expression "psVar37 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1)" identifier = (cast_expression "(ssh_sharing_connstate *)((int)&psVar37->fn + 1)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar37->fn + 1)" ( (binary_expression "(int)&psVar37->fn + 1" (cast_expression "(int)&psVar37->fn" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar37->fn" & (field_expression "psVar37->fn" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "psVar46 = (ssh_sharing_connstate *)(iVar39 + 1);" (assignment_expression "psVar46 = (ssh_sharing_connstate *)(iVar39 + 1)" identifier = (cast_expression "(ssh_sharing_connstate *)(iVar39 + 1)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + 1)" ( (binary_expression "iVar39 + 1" identifier + number_literal) )))) ;) (expression_statement "cs_00->recvlen = (int)psVar46;" (assignment_expression "cs_00->recvlen = (int)psVar46" (field_expression "cs_00->recvlen" identifier -> field_identifier) = (cast_expression "(int)psVar46" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "cs_00->recvbuf[iVar39] = uVar32;" (assignment_expression "cs_00->recvbuf[iVar39] = uVar32" (subscript_expression "cs_00->recvbuf[iVar39]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "puVar45 = (uint *)((int)puVar45 + -1);" (assignment_expression "puVar45 = (uint *)((int)puVar45 + -1)" identifier = (cast_expression "(uint *)((int)puVar45 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar45 + -1)" ( (binary_expression "(int)puVar45 + -1" (cast_expression "(int)puVar45" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar39 = cs_00->curr_packetlen;" (assignment_expression "iVar39 = cs_00->curr_packetlen" identifier = (field_expression "cs_00->curr_packetlen" identifier -> field_identifier)) ;) })) (expression_statement "bVar1 = cs_00->recvbuf[4];" (assignment_expression "bVar1 = cs_00->recvbuf[4]" identifier = (subscript_expression "cs_00->recvbuf[4]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "puVar36 = cs_00->recvbuf + 5;" (assignment_expression "puVar36 = cs_00->recvbuf + 5" identifier = (binary_expression "cs_00->recvbuf + 5" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal)) ;) (expression_statement "puVar25 = (undefined1 *)((int)&psVar46[-1].globreq_head + 3);" (assignment_expression "puVar25 = (undefined1 *)((int)&psVar46[-1].globreq_head + 3)" identifier = (cast_expression "(undefined1 *)((int)&psVar46[-1].globreq_head + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar46[-1].globreq_head + 3)" ( (binary_expression "(int)&psVar46[-1].globreq_head + 3" (cast_expression "(int)&psVar46[-1].globreq_head" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar46[-1].globreq_head" & (field_expression "psVar46[-1].globreq_head" (subscript_expression "psVar46[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (bVar1 != 0x5a) {\n          if (bVar1 < 0x5b) {\n            if (bVar1 != 2) {\n              if (2 < bVar1) {\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }\n              if (bVar1 != 1) {\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }\n              (*(*cs_00->sock)->close)(cs_00->sock);\n              cs_00->sock = (Socket)0x0;\n              share_try_cleanup(cs_00);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3);\n            if ((bVar1 == 0x62) &&\n               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)) {\n              psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);\n              iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0);\n              psVar30 = psStack_e8;\n              if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0);\n            if ((bVar1 == 0x61) && (3 < (int)puVar25)) {\n              ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar26 != (share_channel *)0x0) {\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar1 == 0x5c) {\n              if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar1) {\n              if (100 < bVar1) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)puVar25 < 0x10) {\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar41 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar35 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar43 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8);\n            psStack_e8 = psVar43;\n            pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0);\n            if (pvVar23 == (void *)0x0) {\n              psStack_e4 = psVar43;\n              psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;\n              ppVar16 = psVar46->fn;\n            }\n            else {\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)ppVar16;\n            cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8);\n            uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8));\n            if (pvVar23 != (void *)0x0) {\n              psVar19 = cs_00->parent;\n              uVar38 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (psVar46 != (ssh_sharing_connstate *)0x0) {\n              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }" if (parenthesized_expression "(bVar1 != 0x5a)" ( (binary_expression "bVar1 != 0x5a" identifier != number_literal) )) (compound_statement "{\n          if (bVar1 < 0x5b) {\n            if (bVar1 != 2) {\n              if (2 < bVar1) {\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }\n              if (bVar1 != 1) {\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }\n              (*(*cs_00->sock)->close)(cs_00->sock);\n              cs_00->sock = (Socket)0x0;\n              share_try_cleanup(cs_00);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3);\n            if ((bVar1 == 0x62) &&\n               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)) {\n              psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);\n              iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0);\n              psVar30 = psStack_e8;\n              if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0);\n            if ((bVar1 == 0x61) && (3 < (int)puVar25)) {\n              ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar26 != (share_channel *)0x0) {\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar1 == 0x5c) {\n              if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar1) {\n              if (100 < bVar1) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)puVar25 < 0x10) {\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar41 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar35 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar43 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8);\n            psStack_e8 = psVar43;\n            pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0);\n            if (pvVar23 == (void *)0x0) {\n              psStack_e4 = psVar43;\n              psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;\n              ppVar16 = psVar46->fn;\n            }\n            else {\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)ppVar16;\n            cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8);\n            uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8));\n            if (pvVar23 != (void *)0x0) {\n              psVar19 = cs_00->parent;\n              uVar38 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (psVar46 != (ssh_sharing_connstate *)0x0) {\n              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }" { (if_statement "if (bVar1 < 0x5b) {\n            if (bVar1 != 2) {\n              if (2 < bVar1) {\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }\n              if (bVar1 != 1) {\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }\n              (*(*cs_00->sock)->close)(cs_00->sock);\n              cs_00->sock = (Socket)0x0;\n              share_try_cleanup(cs_00);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3);\n            if ((bVar1 == 0x62) &&\n               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)) {\n              psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);\n              iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0);\n              psVar30 = psStack_e8;\n              if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0);\n            if ((bVar1 == 0x61) && (3 < (int)puVar25)) {\n              ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar26 != (share_channel *)0x0) {\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar1 == 0x5c) {\n              if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar1) {\n              if (100 < bVar1) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)puVar25 < 0x10) {\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar41 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar35 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar43 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8);\n            psStack_e8 = psVar43;\n            pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0);\n            if (pvVar23 == (void *)0x0) {\n              psStack_e4 = psVar43;\n              psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;\n              ppVar16 = psVar46->fn;\n            }\n            else {\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)ppVar16;\n            cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8);\n            uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8));\n            if (pvVar23 != (void *)0x0) {\n              psVar19 = cs_00->parent;\n              uVar38 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (psVar46 != (ssh_sharing_connstate *)0x0) {\n              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\n          }" if (parenthesized_expression "(bVar1 < 0x5b)" ( (binary_expression "bVar1 < 0x5b" identifier < number_literal) )) (compound_statement "{\n            if (bVar1 != 2) {\n              if (2 < bVar1) {\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }\n              if (bVar1 != 1) {\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }\n              (*(*cs_00->sock)->close)(cs_00->sock);\n              cs_00->sock = (Socket)0x0;\n              share_try_cleanup(cs_00);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3);\n            if ((bVar1 == 0x62) &&\n               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)) {\n              psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);\n              iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0);\n              psVar30 = psStack_e8;\n              if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0);\n            if ((bVar1 == 0x61) && (3 < (int)puVar25)) {\n              ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar26 != (share_channel *)0x0) {\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }" { (if_statement "if (bVar1 != 2) {\n              if (2 < bVar1) {\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }\n              if (bVar1 != 1) {\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }\n              (*(*cs_00->sock)->close)(cs_00->sock);\n              cs_00->sock = (Socket)0x0;\n              share_try_cleanup(cs_00);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }" if (parenthesized_expression "(bVar1 != 2)" ( (binary_expression "bVar1 != 2" identifier != number_literal) )) (compound_statement "{\n              if (2 < bVar1) {\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }\n              if (bVar1 != 1) {\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }\n              (*(*cs_00->sock)->close)(cs_00->sock);\n              cs_00->sock = (Socket)0x0;\n              share_try_cleanup(cs_00);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }" { (if_statement "if (2 < bVar1) {\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }" if (parenthesized_expression "(2 < bVar1)" ( (binary_expression "2 < bVar1" number_literal < identifier) )) (compound_statement "{\n                if (bVar1 == 4) goto LAB_00078844;\n                if (bVar1 != 0x50) goto LAB_0007878c;\n                iVar39 = *(int *)(pcVar50 + 0x38144);\n                psVar30 = psVar43;\n                if ((int)puVar25 < 4) goto LAB_0007882c;\n                psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);\n                psVar47 = psStack_e8;\n                if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);\n                if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar50 + 0x38124))(psVar47);\n                iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                psVar43 = psStack_e8;\n                if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;\n                puVar48 = puVar36 + (int)psStack_e8;\n                iVar17 = (int)puVar25 - (int)puVar24;\n                psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;\n                if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);\n                psVar43 = psVar30;\n                goto LAB_000787a4;\n              }" { (if_statement "if (bVar1 == 4) goto LAB_00078844;" if (parenthesized_expression "(bVar1 == 4)" ( (binary_expression "bVar1 == 4" identifier == number_literal) )) (goto_statement "goto LAB_00078844;" goto statement_identifier ;)) (if_statement "if (bVar1 != 0x50) goto LAB_0007878c;" if (parenthesized_expression "(bVar1 != 0x50)" ( (binary_expression "bVar1 != 0x50" identifier != number_literal) )) (goto_statement "goto LAB_0007878c;" goto statement_identifier ;)) (expression_statement "iVar39 = *(int *)(pcVar50 + 0x38144);" (assignment_expression "iVar39 = *(int *)(pcVar50 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) ))))) ;) (expression_statement "psVar30 = psVar43;" (assignment_expression "psVar30 = psVar43" identifier = identifier) ;) (if_statement "if ((int)puVar25 < 4) goto LAB_0007882c;" if (parenthesized_expression "((int)puVar25 < 4)" ( (binary_expression "(int)puVar25 < 4" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0007882c;" goto statement_identifier ;)) (expression_statement "psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0);" (assignment_expression "psVar30 = (ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0)" identifier = (cast_expression "(ssh_sharing_connstate *)(*(int *)(pcVar50 + 0x3885c) + 0x6af0)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar50 + 0x3885c) + 0x6af0)" ( (binary_expression "*(int *)(pcVar50 + 0x3885c) + 0x6af0" (pointer_expression "*(int *)(pcVar50 + 0x3885c)" * (cast_expression "(int *)(pcVar50 + 0x3885c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x3885c)" ( (binary_expression "pcVar50 + 0x3885c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0);" (assignment_expression "iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0)" identifier = (call_expression "getstring_inner(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0)" identifier (argument_list "(puVar36,(int)puVar25,(char **)&psStack_e8,(int *)0x0)" ( identifier , (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(char **)&psStack_e8" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&psStack_e8" & identifier)) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "psVar47 = psStack_e8;" (assignment_expression "psVar47 = psStack_e8" identifier = identifier) ;) (if_statement "if ((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))\n                goto LAB_00078828;" if (parenthesized_expression "((iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0))" ( (binary_expression "(iVar39 == 0) || (psStack_e8 == (ssh_sharing_connstate *)0x0)" (parenthesized_expression "(iVar39 == 0)" ( (binary_expression "iVar39 == 0" identifier == number_literal) )) || (parenthesized_expression "(psStack_e8 == (ssh_sharing_connstate *)0x0)" ( (binary_expression "psStack_e8 == (ssh_sharing_connstate *)0x0" identifier == (cast_expression "(ssh_sharing_connstate *)0x0" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_00078828;" goto statement_identifier ;)) (expression_statement "iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860);" (assignment_expression "iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860)" identifier = (call_expression "(**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38c4c))" ( (pointer_expression "**(code **)(pcVar50 + 0x38c4c)" * (pointer_expression "*(code **)(pcVar50 + 0x38c4c)" * (cast_expression "(code **)(pcVar50 + 0x38c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38c4c)" ( (binary_expression "pcVar50 + 0x38c4c" identifier + number_literal) ))))) )) (argument_list "(psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4860)" ( identifier , (binary_expression "*(int *)(pcVar50 + 0x380fc) + 0x4860" (pointer_expression "*(int *)(pcVar50 + 0x380fc)" * (cast_expression "(int *)(pcVar50 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x380fc)" ( (binary_expression "pcVar50 + 0x380fc" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar39 != 0) {\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }" if (parenthesized_expression "(iVar39 != 0)" ( (binary_expression "iVar39 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psVar43 = psVar30;\n                  if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  goto LAB_0007882c;\n                }" { (expression_statement "iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc);" (assignment_expression "iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc)" identifier = (call_expression "(**(code **)(pcVar50 + 0x38c4c))\n                                     (psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38c4c))" ( (pointer_expression "**(code **)(pcVar50 + 0x38c4c)" * (pointer_expression "*(code **)(pcVar50 + 0x38c4c)" * (cast_expression "(code **)(pcVar50 + 0x38c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38c4c)" ( (binary_expression "pcVar50 + 0x38c4c" identifier + number_literal) ))))) )) (argument_list "(psVar47,*(int *)(pcVar50 + 0x380fc) + 0x47cc)" ( identifier , (binary_expression "*(int *)(pcVar50 + 0x380fc) + 0x47cc" (pointer_expression "*(int *)(pcVar50 + 0x380fc)" * (cast_expression "(int *)(pcVar50 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x380fc)" ( (binary_expression "pcVar50 + 0x380fc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar52 = *(code **)(pcVar50 + 0x38124);" (assignment_expression "pcVar52 = *(code **)(pcVar50 + 0x38124)" identifier = (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) ;) (expression_statement "psVar43 = psVar30;" (assignment_expression "psVar43 = psVar30" identifier = identifier) ;) (if_statement "if (iVar39 == 0) {\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }" if (parenthesized_expression "(iVar39 == 0)" ( (binary_expression "iVar39 == 0" identifier == number_literal) )) (compound_statement "{\n                    (*pcVar52)(psVar47);\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar47 = psStack_e8;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }" { (expression_statement "(*pcVar52)(psVar47);" (call_expression "(*pcVar52)(psVar47)" (parenthesized_expression "(*pcVar52)" ( (pointer_expression "*pcVar52" * identifier) )) (argument_list "(psVar47)" ( identifier ))) ;) (expression_statement "iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);" (assignment_expression "iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8)" identifier = (call_expression "getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8)" identifier (argument_list "(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8)" ( identifier , (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(int *)&psStack_e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_e8" & identifier)) )))) ;) (expression_statement "psVar47 = psStack_e8;" (assignment_expression "psVar47 = psStack_e8" identifier = identifier) ;) (if_statement "if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)) {\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }" if (parenthesized_expression "(((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25))" ( (binary_expression "((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)" (parenthesized_expression "((iVar39 != 0) && (-1 < (int)psStack_e8))" ( (binary_expression "(iVar39 != 0) && (-1 < (int)psStack_e8)" (parenthesized_expression "(iVar39 != 0)" ( (binary_expression "iVar39 != 0" identifier != number_literal) )) && (parenthesized_expression "(-1 < (int)psStack_e8)" ( (binary_expression "-1 < (int)psStack_e8" number_literal < (cast_expression "(int)psStack_e8" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "(puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25)" ( (comma_expression "puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                       (int)psStack_e8 < (int)puVar25" (assignment_expression "puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1)" identifier = (cast_expression "(undefined1 *)((int)&psStack_e8->fn + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psStack_e8->fn + 1)" ( (binary_expression "(int)&psStack_e8->fn + 1" (cast_expression "(int)&psStack_e8->fn" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psStack_e8->fn" & (field_expression "psStack_e8->fn" identifier -> field_identifier))) + number_literal) )))) , (binary_expression "(int)psStack_e8 < (int)puVar25" (cast_expression "(int)psStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                      psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);\n                      iVar17 = (int)puVar25 - (int)puVar24;\n                      cVar2 = *(char *)&psStack_108->fn;\n                      if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }" { (expression_statement "psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8);" (assignment_expression "psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8)" identifier = (cast_expression "(ssh_sharing_connstate *)(puVar36 + (int)psStack_e8)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + (int)psStack_e8)" ( (binary_expression "puVar36 + (int)psStack_e8" identifier + (cast_expression "(int)psStack_e8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar17 = (int)puVar25 - (int)puVar24;" (assignment_expression "iVar17 = (int)puVar25 - (int)puVar24" identifier = (binary_expression "(int)puVar25 - (int)puVar24" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "cVar2 = *(char *)&psStack_108->fn;" (assignment_expression "cVar2 = *(char *)&psStack_108->fn" identifier = (pointer_expression "*(char *)&psStack_108->fn" * (cast_expression "(char *)&psStack_108->fn" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_108->fn" & (field_expression "psStack_108->fn" identifier -> field_identifier))))) ;) (if_statement "if ((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }" if (parenthesized_expression "((iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0))" ( (binary_expression "(iVar17 < 4) ||\n                         (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)" (parenthesized_expression "(iVar17 < 4)" ( (binary_expression "iVar17 < 4" identifier < number_literal) )) || (parenthesized_expression "(iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0)" ( (comma_expression "iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8), iVar39 == 0" (assignment_expression "iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8)" identifier = (call_expression "getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8)" identifier (argument_list "(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                                   (int *)&psStack_e8)" ( (binary_expression "puVar36 + (int)puVar24" identifier + (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(int *)&psStack_e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_e8" & identifier)) )))) , (binary_expression "iVar39 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }" { (expression_statement "iVar39 = *(int *)(pcVar50 + 0x38144);" (assignment_expression "iVar39 = *(int *)(pcVar50 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) ))))) ;) (if_statement "if ((int)psVar47 < (int)&psVar46[-1].globreq_head) {\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }" if (parenthesized_expression "((int)psVar47 < (int)&psVar46[-1].globreq_head)" ( (binary_expression "(int)psVar47 < (int)&psVar46[-1].globreq_head" (cast_expression "(int)psVar47" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)&psVar46[-1].globreq_head" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar46[-1].globreq_head" & (field_expression "psVar46[-1].globreq_head" (subscript_expression "psVar46[-1]" identifier [ number_literal ]) . field_identifier)))) )) (compound_statement "{\n                          if (iVar17 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar38 = 0x5a7;\n                          goto LAB_00079020;\n                        }" { (if_statement "if (iVar17 >= 4) goto LAB_000783d4;" if (parenthesized_expression "(iVar17 >= 4)" ( (binary_expression "iVar17 >= 4" identifier >= number_literal) )) (goto_statement "goto LAB_000783d4;" goto statement_identifier ;)) (labeled_statement "LAB_0007901c:\n                          uVar38 = 0x5a7;" statement_identifier : (expression_statement "uVar38 = 0x5a7;" (assignment_expression "uVar38 = 0x5a7" identifier = number_literal) ;)) (goto_statement "goto LAB_00079020;" goto statement_identifier ;) })) }) (else_clause "else {\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }" else (compound_statement "{\n                        psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                        iVar39 = *(int *)(pcVar50 + 0x38144);\n                        if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }\n                      }" { (expression_statement "psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);" (assignment_expression "psVar47 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8)" identifier = (cast_expression "(ssh_sharing_connstate *)(puVar24 + (int)psStack_e8)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + (int)psStack_e8)" ( (binary_expression "puVar24 + (int)psStack_e8" identifier + (cast_expression "(int)psStack_e8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar39 = *(int *)(pcVar50 + 0x38144);" (assignment_expression "iVar39 = *(int *)(pcVar50 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) ))))) ;) (if_statement "if (-1 < (int)psVar47) {\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }" if (parenthesized_expression "(-1 < (int)psVar47)" ( (binary_expression "-1 < (int)psVar47" number_literal < (cast_expression "(int)psVar47" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                          pcVar52 = *(code **)(pcVar50 + 0x38158);\n                          if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;\nLAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);\n                          psVar43 = psStack_e8;\n                          if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;\n                          puVar48 = puVar36 + (int)psVar47;\n                          bVar1 = *puVar48;\n                          bVar3 = puVar48[1];\n                          bVar4 = puVar48[3];\n                          bVar5 = puVar48[2];\n                          psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);\n                          psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);\n                          psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);\n                          (**(code **)(pcVar50 + 0x38124))(psStack_e8);\n                          if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }\n                          (*pcVar52)(psVar43);\n                          goto LAB_000784d4;\n                        }" { (expression_statement "pcVar52 = *(code **)(pcVar50 + 0x38158);" (assignment_expression "pcVar52 = *(code **)(pcVar50 + 0x38158)" identifier = (pointer_expression "*(code **)(pcVar50 + 0x38158)" * (cast_expression "(code **)(pcVar50 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38158)" ( (binary_expression "pcVar50 + 0x38158" identifier + number_literal) ))))) ;) (if_statement "if ((int)&psVar46[-1].globreq_head <= (int)psVar47) goto LAB_00078830;" if (parenthesized_expression "((int)&psVar46[-1].globreq_head <= (int)psVar47)" ( (binary_expression "(int)&psVar46[-1].globreq_head <= (int)psVar47" (cast_expression "(int)&psVar46[-1].globreq_head" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar46[-1].globreq_head" & (field_expression "psVar46[-1].globreq_head" (subscript_expression "psVar46[-1]" identifier [ number_literal ]) . field_identifier))) <= (cast_expression "(int)psVar47" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00078830;" goto statement_identifier ;)) (labeled_statement "LAB_000783d4:\n                          iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);" statement_identifier : (expression_statement "iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0);" (assignment_expression "iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0)" identifier = (call_expression "getstring_inner(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0)" identifier (argument_list "(puVar36 + (int)puVar24,iVar17,\n                                                   (char **)&psStack_e8,(int *)0x0)" ( (binary_expression "puVar36 + (int)puVar24" identifier + (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , (cast_expression "(char **)&psStack_e8" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&psStack_e8" & identifier)) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;)) (expression_statement "psVar43 = psStack_e8;" (assignment_expression "psVar43 = psStack_e8" identifier = identifier) ;) (if_statement "if ((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                          goto LAB_0007901c;" if (parenthesized_expression "((iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))" ( (binary_expression "(iVar39 == 0) ||\n                             (psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0)" (parenthesized_expression "(iVar39 == 0)" ( (binary_expression "iVar39 == 0" identifier == number_literal) )) || (parenthesized_expression "(psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0)" ( (comma_expression "psVar30 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0" (assignment_expression "psVar30 = psStack_e8" identifier = identifier) , (binary_expression "psStack_e8 == (ssh_sharing_connstate *)0x0" identifier == (cast_expression "(ssh_sharing_connstate *)0x0" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_0007901c;" goto statement_identifier ;)) (expression_statement "puVar48 = puVar36 + (int)psVar47;" (assignment_expression "puVar48 = puVar36 + (int)psVar47" identifier = (binary_expression "puVar36 + (int)psVar47" identifier + (cast_expression "(int)psVar47" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "bVar1 = *puVar48;" (assignment_expression "bVar1 = *puVar48" identifier = (pointer_expression "*puVar48" * identifier)) ;) (expression_statement "bVar3 = puVar48[1];" (assignment_expression "bVar3 = puVar48[1]" identifier = (subscript_expression "puVar48[1]" identifier [ number_literal ])) ;) (expression_statement "bVar4 = puVar48[3];" (assignment_expression "bVar4 = puVar48[3]" identifier = (subscript_expression "puVar48[3]" identifier [ number_literal ])) ;) (expression_statement "bVar5 = puVar48[2];" (assignment_expression "bVar5 = puVar48[2]" identifier = (subscript_expression "puVar48[2]" identifier [ number_literal ])) ;) (expression_statement "psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8);" (assignment_expression "psStack_e8 = (ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8)" identifier = (cast_expression "(ssh_sharing_connstate *)\n                                       (**(code **)(pcVar50 + 0x38164))(psStack_e8)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x38164))(psStack_e8)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38164))" ( (pointer_expression "**(code **)(pcVar50 + 0x38164)" * (pointer_expression "*(code **)(pcVar50 + 0x38164)" * (cast_expression "(code **)(pcVar50 + 0x38164)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38164)" ( (binary_expression "pcVar50 + 0x38164" identifier + number_literal) ))))) )) (argument_list "(psStack_e8)" ( identifier ))))) ;) (expression_statement "psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8);" (assignment_expression "psStack_e4 = (ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8)" identifier = (cast_expression "(ssh_sharing_connstate *)\n                                       ((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8)" ( (binary_expression "(uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10 |\n                                       (uint)bVar5 << 8" (binary_expression "(uint)bVar1 << 0x18 | (uint)bVar4 | (uint)bVar3 << 0x10" (binary_expression "(uint)bVar1 << 0x18 | (uint)bVar4" (binary_expression "(uint)bVar1 << 0x18" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal) | (cast_expression "(uint)bVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) | (binary_expression "(uint)bVar3 << 0x10" (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal)) | (binary_expression "(uint)bVar5 << 8" (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal)) )))) ;) (expression_statement "psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0);" (assignment_expression "psVar46 = (ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0)" identifier = (cast_expression "(ssh_sharing_connstate *)\n                                    find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "find234(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0)" identifier (argument_list "(cs_00->forwardings,&psStack_e8,(cmpfn234)0x0)" ( (field_expression "cs_00->forwardings" identifier -> field_identifier) , (pointer_expression "&psStack_e8" & identifier) , (cast_expression "(cmpfn234)0x0" ( (type_descriptor "cmpfn234" type_identifier) ) number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar50 + 0x38124))(psStack_e8);" (call_expression "(**(code **)(pcVar50 + 0x38124))(psStack_e8)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38124))" ( (pointer_expression "**(code **)(pcVar50 + 0x38124)" * (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(psStack_e8)" ( identifier ))) ;) (if_statement "if (psVar46 == (ssh_sharing_connstate *)0x0) {\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }" if (parenthesized_expression "(psVar46 == (ssh_sharing_connstate *)0x0)" ( (binary_expression "psVar46 == (ssh_sharing_connstate *)0x0" identifier == (cast_expression "(ssh_sharing_connstate *)0x0" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                            if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }\n                          }" { (expression_statement "pcVar52 = *(code **)(pcVar50 + 0x38124);" (assignment_expression "pcVar52 = *(code **)(pcVar50 + 0x38124)" identifier = (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) ;) (if_statement "if (cVar2 != '\0') {\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                              send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);\n                              goto LAB_000784c4;\n                            }" { (expression_statement "send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc);" (call_expression "send_packet_to_downstream\n                                        ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc)" identifier (argument_list "((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                         (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                         (share_channel *)0x0,(share_channel *)0xc)" ( (cast_expression "(ssh_sharing_connstate *)&cs_00->sock" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cs_00->sock" & (field_expression "cs_00->sock" identifier -> field_identifier))) , number_literal , (cast_expression "(void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar50 + 0x380fc) + 0x2d54)" ( (binary_expression "*(int *)(pcVar50 + 0x380fc) + 0x2d54" (pointer_expression "*(int *)(pcVar50 + 0x380fc)" * (cast_expression "(int *)(pcVar50 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x380fc)" ( (binary_expression "pcVar50 + 0x380fc" identifier + number_literal) )))) + number_literal) ))) , number_literal , (cast_expression "(share_channel *)0x0" ( (type_descriptor "share_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(share_channel *)0xc" ( (type_descriptor "share_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (goto_statement "goto LAB_000784c4;" goto statement_identifier ;) })) }) (else_clause "else {\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }" else (compound_statement "{\n                            cVar2 = *(char *)&psStack_108->fn;\n                            *(undefined1 *)&psStack_108->fn = 1;\n                            if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }\n                            (**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                            (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\nLAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);\n                          }" { (expression_statement "cVar2 = *(char *)&psStack_108->fn;" (assignment_expression "cVar2 = *(char *)&psStack_108->fn" identifier = (pointer_expression "*(char *)&psStack_108->fn" * (cast_expression "(char *)&psStack_108->fn" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_108->fn" & (field_expression "psStack_108->fn" identifier -> field_identifier))))) ;) (expression_statement "*(undefined1 *)&psStack_108->fn = 1;" (assignment_expression "*(undefined1 *)&psStack_108->fn = 1" (pointer_expression "*(undefined1 *)&psStack_108->fn" * (cast_expression "(undefined1 *)&psStack_108->fn" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_108->fn" & (field_expression "psStack_108->fn" identifier -> field_identifier)))) = number_literal) ;) (if_statement "if (cVar2 == '\0') {\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar39 = 0;\n                            }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                              iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                            }" { (expression_statement "iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;" (assignment_expression "iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec" identifier = (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x41ec" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                              iVar39 = 0;\n                            }" else (compound_statement "{\n                              iVar39 = 0;\n                            }" { (expression_statement "iVar39 = 0;" (assignment_expression "iVar39 = 0" identifier = number_literal) ;) }))) (expression_statement "(**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);" (call_expression "(**(code **)(pcVar50 + 0x388fc))\n                                      (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39)" (parenthesized_expression "(**(code **)(pcVar50 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar50 + 0x388fc)" * (pointer_expression "*(code **)(pcVar50 + 0x388fc)" * (cast_expression "(code **)(pcVar50 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x388fc)" ( (binary_expression "pcVar50 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39)" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) , (field_expression "cs_00->id" identifier -> field_identifier) , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);" (call_expression "(**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38910))" ( (pointer_expression "**(code **)(pcVar50 + 0x38910)" * (pointer_expression "*(code **)(pcVar50 + 0x38910)" * (cast_expression "(code **)(pcVar50 + 0x38910)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38910)" ( (binary_expression "pcVar50 + 0x38910" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,cs_00)" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) , identifier ))) ;) (labeled_statement "LAB_000784c4:\n                            pcVar52 = *(code **)(pcVar50 + 0x38124);" statement_identifier : (expression_statement "pcVar52 = *(code **)(pcVar50 + 0x38124);" (assignment_expression "pcVar52 = *(code **)(pcVar50 + 0x38124)" identifier = (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) ;)) }))) (expression_statement "(*pcVar52)(psVar43);" (call_expression "(*pcVar52)(psVar43)" (parenthesized_expression "(*pcVar52)" ( (pointer_expression "*pcVar52" * identifier) )) (argument_list "(psVar43)" ( identifier ))) ;) (goto_statement "goto LAB_000784d4;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_0007882c;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }" else (compound_statement "{\nLAB_00079040:\n                    (*pcVar52)();\n                    iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n                    psVar30 = psVar43;\n                    if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }\n                  }" { (labeled_statement "LAB_00079040:\n                    (*pcVar52)();" statement_identifier : (expression_statement "(*pcVar52)();" (call_expression "(*pcVar52)()" (parenthesized_expression "(*pcVar52)" ( (pointer_expression "*pcVar52" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);" (assignment_expression "iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8)" identifier = (call_expression "getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8)" identifier (argument_list "(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8)" ( identifier , (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(int *)&psStack_e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_e8" & identifier)) )))) ;) (expression_statement "psVar30 = psVar43;" (assignment_expression "psVar30 = psVar43" identifier = identifier) ;) (if_statement "if (((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)) {\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }" if (parenthesized_expression "(((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25))" ( (binary_expression "((iVar39 != 0) && (-1 < (int)psStack_e8)) &&\n                       ((int)psStack_e8 < (int)puVar25)" (parenthesized_expression "((iVar39 != 0) && (-1 < (int)psStack_e8))" ( (binary_expression "(iVar39 != 0) && (-1 < (int)psStack_e8)" (parenthesized_expression "(iVar39 != 0)" ( (binary_expression "iVar39 != 0" identifier != number_literal) )) && (parenthesized_expression "(-1 < (int)psStack_e8)" ( (binary_expression "-1 < (int)psStack_e8" number_literal < (cast_expression "(int)psStack_e8" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "((int)psStack_e8 < (int)puVar25)" ( (binary_expression "(int)psStack_e8 < (int)puVar25" (cast_expression "(int)psStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n                      if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;\n                      send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);\n                      cs_00->recvlen = 0;\n                      goto LAB_000784dc;\n                    }" { (if_statement "if (puVar36[(int)psStack_e8] == '\0') goto LAB_000784d4;" if (parenthesized_expression "(puVar36[(int)psStack_e8] == '\0')" ( (binary_expression "puVar36[(int)psStack_e8] == '\0'" (subscript_expression "puVar36[(int)psStack_e8]" identifier [ (cast_expression "(int)psStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) ]) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000784d4;" goto statement_identifier ;)) (expression_statement "send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc);" (call_expression "send_packet_to_downstream\n                                ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc)" identifier (argument_list "((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                 (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                 (share_channel *)0x0,(share_channel *)0xc)" ( (cast_expression "(ssh_sharing_connstate *)&cs_00->sock" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cs_00->sock" & (field_expression "cs_00->sock" identifier -> field_identifier))) , number_literal , (cast_expression "(void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar50 + 0x380fc) + 0x2d54)" ( (binary_expression "*(int *)(pcVar50 + 0x380fc) + 0x2d54" (pointer_expression "*(int *)(pcVar50 + 0x380fc)" * (cast_expression "(int *)(pcVar50 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x380fc)" ( (binary_expression "pcVar50 + 0x380fc" identifier + number_literal) )))) + number_literal) ))) , number_literal , (cast_expression "(share_channel *)0x0" ( (type_descriptor "share_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(share_channel *)0xc" ( (type_descriptor "share_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "cs_00->recvlen = 0;" (assignment_expression "cs_00->recvlen = 0" (field_expression "cs_00->recvlen" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00078828:\n                  iVar39 = *(int *)(pcVar50 + 0x38144);" statement_identifier : (expression_statement "iVar39 = *(int *)(pcVar50 + 0x38144);" (assignment_expression "iVar39 = *(int *)(pcVar50 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0007882c;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar50 + 0x38124))(psVar47);" (call_expression "(**(code **)(pcVar50 + 0x38124))(psVar47)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38124))" ( (pointer_expression "**(code **)(pcVar50 + 0x38124)" * (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(psVar47)" ( identifier ))) ;) (expression_statement "iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);" (assignment_expression "iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8)" identifier = (call_expression "getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8)" identifier (argument_list "(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8)" ( identifier , (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(int *)&psStack_e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_e8" & identifier)) )))) ;) (expression_statement "psVar43 = psStack_e8;" (assignment_expression "psVar43 = psStack_e8" identifier = identifier) ;) (if_statement "if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)) goto LAB_00078828;" if (parenthesized_expression "(((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8))" ( (binary_expression "((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n                   (puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)" (parenthesized_expression "((iVar39 == 0) || ((int)psStack_e8 < 0))" ( (binary_expression "(iVar39 == 0) || ((int)psStack_e8 < 0)" (parenthesized_expression "(iVar39 == 0)" ( (binary_expression "iVar39 == 0" identifier == number_literal) )) || (parenthesized_expression "((int)psStack_e8 < 0)" ( (binary_expression "(int)psStack_e8 < 0" (cast_expression "(int)psStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) || (parenthesized_expression "(puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8)" ( (comma_expression "puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1),\n                   (int)puVar25 <= (int)psStack_e8" (assignment_expression "puVar24 = (undefined1 *)((int)&psStack_e8->fn + 1)" identifier = (cast_expression "(undefined1 *)((int)&psStack_e8->fn + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psStack_e8->fn + 1)" ( (binary_expression "(int)&psStack_e8->fn + 1" (cast_expression "(int)&psStack_e8->fn" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psStack_e8->fn" & (field_expression "psStack_e8->fn" identifier -> field_identifier))) + number_literal) )))) , (binary_expression "(int)puVar25 <= (int)psStack_e8" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)psStack_e8" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (goto_statement "goto LAB_00078828;" goto statement_identifier ;)) (expression_statement "puVar48 = puVar36 + (int)psStack_e8;" (assignment_expression "puVar48 = puVar36 + (int)psStack_e8" identifier = (binary_expression "puVar36 + (int)psStack_e8" identifier + (cast_expression "(int)psStack_e8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar17 = (int)puVar25 - (int)puVar24;" (assignment_expression "iVar17 = (int)puVar25 - (int)puVar24" identifier = (binary_expression "(int)puVar25 - (int)puVar24" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48;" (assignment_expression "psStack_108 = (ssh_sharing_connstate *)(uint)*puVar48" identifier = (binary_expression "(ssh_sharing_connstate *)(uint)*puVar48" (cast_expression "(ssh_sharing_connstate *)(uint)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (if_statement "if ((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)) {\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }\n                else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }" if (parenthesized_expression "((iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0))" ( (binary_expression "(iVar17 < 4) ||\n                   (iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)" (parenthesized_expression "(iVar17 < 4)" ( (binary_expression "iVar17 < 4" identifier < number_literal) )) || (parenthesized_expression "(iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0)" ( (comma_expression "iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8), iVar39 == 0" (assignment_expression "iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8)" identifier = (call_expression "getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8)" identifier (argument_list "(puVar36 + (int)puVar24,iVar17,(char **)0x0,\n                                             (int *)&psStack_e8)" ( (binary_expression "puVar36 + (int)puVar24" identifier + (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(int *)&psStack_e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_e8" & identifier)) )))) , (binary_expression "iVar39 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                }" { (expression_statement "iVar39 = *(int *)(pcVar50 + 0x38144);" (assignment_expression "iVar39 = *(int *)(pcVar50 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) ))))) ;) (if_statement "if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }" if (parenthesized_expression "((int)psVar43 < (int)&psVar46[-1].globreq_head)" ( (binary_expression "(int)psVar43 < (int)&psVar46[-1].globreq_head" (cast_expression "(int)psVar43" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)&psVar46[-1].globreq_head" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar46[-1].globreq_head" & (field_expression "psVar46[-1].globreq_head" (subscript_expression "psVar46[-1]" identifier [ number_literal ]) . field_identifier)))) )) (compound_statement "{\n                    if (iVar17 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar38 = 0x55e;\nLAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);\n                    (*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);\n                    psVar43 = psVar30;\n                    goto LAB_00079040;\n                  }" { (if_statement "if (iVar17 >= 4) goto LAB_0007918c;" if (parenthesized_expression "(iVar17 >= 4)" ( (binary_expression "iVar17 >= 4" identifier >= number_literal) )) (goto_statement "goto LAB_0007918c;" goto statement_identifier ;)) (labeled_statement "LAB_00079434:\n                    uVar38 = 0x55e;" statement_identifier : (expression_statement "uVar38 = 0x55e;" (assignment_expression "uVar38 = 0x55e" identifier = number_literal) ;)) (labeled_statement "LAB_00079020:\n                    pcVar52 = *(code **)(pcVar50 + 0x38a34);" statement_identifier : (expression_statement "pcVar52 = *(code **)(pcVar50 + 0x38a34);" (assignment_expression "pcVar52 = *(code **)(pcVar50 + 0x38a34)" identifier = (pointer_expression "*(code **)(pcVar50 + 0x38a34)" * (cast_expression "(code **)(pcVar50 + 0x38a34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38a34)" ( (binary_expression "pcVar50 + 0x38a34" identifier + number_literal) ))))) ;)) (expression_statement "(*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30);" (call_expression "(*pcVar52)(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30)" (parenthesized_expression "(*pcVar52)" ( (pointer_expression "*pcVar52" * identifier) )) (argument_list "(*(int *)(pcVar50 + 0x38144) + -0x4124,\n                               *(int *)(pcVar50 + 0x38144) + -0x42c4,uVar38,\n                               *(int *)(pcVar50 + 0x38144) + -0x3e30)" ( (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x4124" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x42c4" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x3e30" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "psVar43 = psVar30;" (assignment_expression "psVar43 = psVar30" identifier = identifier) ;) (goto_statement "goto LAB_00079040;" goto statement_identifier ;) })) (labeled_statement "LAB_0007882c:\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);" statement_identifier : (expression_statement "pcVar52 = *(code **)(pcVar50 + 0x38158);" (assignment_expression "pcVar52 = *(code **)(pcVar50 + 0x38158)" identifier = (pointer_expression "*(code **)(pcVar50 + 0x38158)" * (cast_expression "(code **)(pcVar50 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38158)" ( (binary_expression "pcVar50 + 0x38158" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }" else (compound_statement "{\n                  psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);\n                  iVar39 = *(int *)(pcVar50 + 0x38144);\n                  if ((int)psVar43 < 0) goto LAB_0007882c;\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }\n                }" { (expression_statement "psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8);" (assignment_expression "psVar43 = (ssh_sharing_connstate *)(puVar24 + (int)psStack_e8)" identifier = (cast_expression "(ssh_sharing_connstate *)(puVar24 + (int)psStack_e8)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + (int)psStack_e8)" ( (binary_expression "puVar24 + (int)psStack_e8" identifier + (cast_expression "(int)psStack_e8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar39 = *(int *)(pcVar50 + 0x38144);" (assignment_expression "iVar39 = *(int *)(pcVar50 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) ))))) ;) (if_statement "if ((int)psVar43 < 0) goto LAB_0007882c;" if (parenthesized_expression "((int)psVar43 < 0)" ( (binary_expression "(int)psVar43 < 0" (cast_expression "(int)psVar43" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0007882c;" goto statement_identifier ;)) (expression_statement "pcVar52 = *(code **)(pcVar50 + 0x38158);" (assignment_expression "pcVar52 = *(code **)(pcVar50 + 0x38158)" identifier = (pointer_expression "*(code **)(pcVar50 + 0x38158)" * (cast_expression "(code **)(pcVar50 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38158)" ( (binary_expression "pcVar50 + 0x38158" identifier + number_literal) ))))) ;) (if_statement "if ((int)psVar43 < (int)&psVar46[-1].globreq_head) {\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }" if (parenthesized_expression "((int)psVar43 < (int)&psVar46[-1].globreq_head)" ( (binary_expression "(int)psVar43 < (int)&psVar46[-1].globreq_head" (cast_expression "(int)psVar43" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)&psVar46[-1].globreq_head" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar46[-1].globreq_head" & (field_expression "psVar46[-1].globreq_head" (subscript_expression "psVar46[-1]" identifier [ number_literal ]) . field_identifier)))) )) (compound_statement "{\nLAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);\n                    psVar47 = psStack_e8;\n                    if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;\n                    puVar49 = puVar36 + (int)psVar43;\n                    psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);\n                    iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);\n                    if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }\n                    (**(code **)(pcVar50 + 0x38124))(psVar47);\n                    cs_00->recvlen = 0;\n                    psVar46 = psVar47;\n                    goto LAB_000784dc;\n                  }" { (labeled_statement "LAB_0007918c:\n                    iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);" statement_identifier : (expression_statement "iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0);" (assignment_expression "iVar39 = getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0)" identifier = (call_expression "getstring_inner(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0)" identifier (argument_list "(puVar36 + (int)puVar24,iVar17,(char **)&psStack_e8,\n                                             (int *)0x0)" ( (binary_expression "puVar36 + (int)puVar24" identifier + (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , (cast_expression "(char **)&psStack_e8" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&psStack_e8" & identifier)) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;)) (expression_statement "psVar47 = psStack_e8;" (assignment_expression "psVar47 = psStack_e8" identifier = identifier) ;) (if_statement "if ((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))\n                    goto LAB_00079434;" if (parenthesized_expression "((iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0))" ( (binary_expression "(iVar39 == 0) ||\n                       (psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0)" (parenthesized_expression "(iVar39 == 0)" ( (binary_expression "iVar39 == 0" identifier == number_literal) )) || (parenthesized_expression "(psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0)" ( (comma_expression "psVar46 = psStack_e8, psStack_e8 == (ssh_sharing_connstate *)0x0" (assignment_expression "psVar46 = psStack_e8" identifier = identifier) , (binary_expression "psStack_e8 == (ssh_sharing_connstate *)0x0" identifier == (cast_expression "(ssh_sharing_connstate *)0x0" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_00079434;" goto statement_identifier ;)) (expression_statement "puVar49 = puVar36 + (int)psVar43;" (assignment_expression "puVar49 = puVar36 + (int)psVar43" identifier = (binary_expression "puVar36 + (int)psVar43" identifier + (cast_expression "(int)psVar43" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8);" (assignment_expression "psVar43 = (ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8)" identifier = (cast_expression "(ssh_sharing_connstate *)\n                              ((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8)" ( (binary_expression "(uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10\n                              | (uint)puVar49[2] << 8" (binary_expression "(uint)*puVar49 << 0x18 | (uint)puVar49[3] | (uint)puVar49[1] << 0x10" (binary_expression "(uint)*puVar49 << 0x18 | (uint)puVar49[3]" (binary_expression "(uint)*puVar49 << 0x18" (binary_expression "(uint)*puVar49" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal) | (cast_expression "(uint)puVar49[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar49[3]" identifier [ number_literal ]))) | (binary_expression "(uint)puVar49[1] << 0x10" (cast_expression "(uint)puVar49[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar49[1]" identifier [ number_literal ])) << number_literal)) | (binary_expression "(uint)puVar49[2] << 8" (cast_expression "(uint)puVar49[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar49[2]" identifier [ number_literal ])) << number_literal)) )))) ;) (expression_statement "iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00);" (assignment_expression "iVar39 = (**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00)" identifier = (call_expression "(**(code **)(pcVar50 + 0x38928))\n                                       (cs_00->parent->ssh,psStack_e8,psVar43,cs_00)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38928))" ( (pointer_expression "**(code **)(pcVar50 + 0x38928)" * (pointer_expression "*(code **)(pcVar50 + 0x38928)" * (cast_expression "(code **)(pcVar50 + 0x38928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38928)" ( (binary_expression "pcVar50 + 0x38928" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,psStack_e8,psVar43,cs_00)" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar39 == 0) {\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }\n                    else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }" if (parenthesized_expression "(iVar39 == 0)" ( (binary_expression "iVar39 == 0" identifier == number_literal) )) (compound_statement "{\n                      if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }\n                    }" { (if_statement "if (psStack_108 != (ssh_sharing_connstate *)0x0) {\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }" if (parenthesized_expression "(psStack_108 != (ssh_sharing_connstate *)0x0)" ( (binary_expression "psStack_108 != (ssh_sharing_connstate *)0x0" identifier != (cast_expression "(ssh_sharing_connstate *)0x0" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                        send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);\n                      }" { (expression_statement "send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc);" (call_expression "send_packet_to_downstream\n                                  ((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc)" identifier (argument_list "((ssh_sharing_connstate *)&cs_00->sock,0x52,\n                                   (void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54),0,\n                                   (share_channel *)0x0,(share_channel *)0xc)" ( (cast_expression "(ssh_sharing_connstate *)&cs_00->sock" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cs_00->sock" & (field_expression "cs_00->sock" identifier -> field_identifier))) , number_literal , (cast_expression "(void *)(*(int *)(pcVar50 + 0x380fc) + 0x2d54)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar50 + 0x380fc) + 0x2d54)" ( (binary_expression "*(int *)(pcVar50 + 0x380fc) + 0x2d54" (pointer_expression "*(int *)(pcVar50 + 0x380fc)" * (cast_expression "(int *)(pcVar50 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x380fc)" ( (binary_expression "pcVar50 + 0x380fc" identifier + number_literal) )))) + number_literal) ))) , number_literal , (cast_expression "(share_channel *)0x0" ( (type_descriptor "share_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(share_channel *)0xc" ( (type_descriptor "share_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) }) (else_clause "else {\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }" else (compound_statement "{\n                      bVar1 = *puVar48;\n                      *puVar48 = 1;\n                      if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }\n                      (**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);\n                      e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);\n                      pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);\n                      t = cs_00->forwardings;\n                      e->host = pcVar18;\n                      e->port = (int)psVar43;\n                      e->active = 0;\n                      psVar27 = (share_forwarding *)add234(t,e);\n                      if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }\n                    }" { (expression_statement "bVar1 = *puVar48;" (assignment_expression "bVar1 = *puVar48" identifier = (pointer_expression "*puVar48" * identifier)) ;) (expression_statement "*puVar48 = 1;" (assignment_expression "*puVar48 = 1" (pointer_expression "*puVar48" * identifier) = number_literal) ;) (if_statement "if (bVar1 == 0) {\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar39 = 0;\n                      }" if (parenthesized_expression "(bVar1 == 0)" ( (binary_expression "bVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                        iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;\n                      }" { (expression_statement "iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec;" (assignment_expression "iVar39 = *(int *)(pcVar50 + 0x38144) + -0x41ec" identifier = (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x41ec" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                        iVar39 = 0;\n                      }" else (compound_statement "{\n                        iVar39 = 0;\n                      }" { (expression_statement "iVar39 = 0;" (assignment_expression "iVar39 = 0" identifier = number_literal) ;) }))) (expression_statement "(**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39);" (call_expression "(**(code **)(pcVar50 + 0x388fc))\n                                (cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39)" (parenthesized_expression "(**(code **)(pcVar50 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar50 + 0x388fc)" * (pointer_expression "*(code **)(pcVar50 + 0x388fc)" * (cast_expression "(code **)(pcVar50 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x388fc)" ( (binary_expression "pcVar50 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,cs_00->id,0x50,puVar36,puVar25,iVar39)" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) , (field_expression "cs_00->id" identifier -> field_identifier) , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc);" (assignment_expression "e = (share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc)" identifier = (cast_expression "(share_forwarding *)(**(code **)(pcVar50 + 0x3815c))(1,0xc)" ( (type_descriptor "share_forwarding *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x3815c))(1,0xc)" (parenthesized_expression "(**(code **)(pcVar50 + 0x3815c))" ( (pointer_expression "**(code **)(pcVar50 + 0x3815c)" * (pointer_expression "*(code **)(pcVar50 + 0x3815c)" * (cast_expression "(code **)(pcVar50 + 0x3815c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x3815c)" ( (binary_expression "pcVar50 + 0x3815c" identifier + number_literal) ))))) )) (argument_list "(1,0xc)" ( number_literal , number_literal ))))) ;) (expression_statement "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47);" (assignment_expression "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38164))(psVar47)" identifier = (cast_expression "(char *)(**(code **)(pcVar50 + 0x38164))(psVar47)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x38164))(psVar47)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38164))" ( (pointer_expression "**(code **)(pcVar50 + 0x38164)" * (pointer_expression "*(code **)(pcVar50 + 0x38164)" * (cast_expression "(code **)(pcVar50 + 0x38164)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38164)" ( (binary_expression "pcVar50 + 0x38164" identifier + number_literal) ))))) )) (argument_list "(psVar47)" ( identifier ))))) ;) (expression_statement "t = cs_00->forwardings;" (assignment_expression "t = cs_00->forwardings" identifier = (field_expression "cs_00->forwardings" identifier -> field_identifier)) ;) (expression_statement "e->host = pcVar18;" (assignment_expression "e->host = pcVar18" (field_expression "e->host" identifier -> field_identifier) = identifier) ;) (expression_statement "e->port = (int)psVar43;" (assignment_expression "e->port = (int)psVar43" (field_expression "e->port" identifier -> field_identifier) = (cast_expression "(int)psVar43" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "e->active = 0;" (assignment_expression "e->active = 0" (field_expression "e->active" identifier -> field_identifier) = number_literal) ;) (expression_statement "psVar27 = (share_forwarding *)add234(t,e);" (assignment_expression "psVar27 = (share_forwarding *)add234(t,e)" identifier = (cast_expression "(share_forwarding *)add234(t,e)" ( (type_descriptor "share_forwarding *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "add234(t,e)" identifier (argument_list "(t,e)" ( identifier , identifier ))))) ;) (if_statement "if (e == psVar27) {\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }" if (parenthesized_expression "(e == psVar27)" ( (binary_expression "e == psVar27" identifier == identifier) )) (compound_statement "{\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                        psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);\n                        psVar31 = cs_00->globreq_tail;\n                        psVar28->next = (share_globreq *)0x0;\n                        if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }\n                        psVar28->fwd = e;\n                        psVar28->type = 0;\n                        psVar28->want_reply = (int)psStack_108;\n                      }" { (expression_statement "(**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);" (call_expression "(**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38910))" ( (pointer_expression "**(code **)(pcVar50 + 0x38910)" * (pointer_expression "*(code **)(pcVar50 + 0x38910)" * (cast_expression "(code **)(pcVar50 + 0x38910)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38910)" ( (binary_expression "pcVar50 + 0x38910" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,cs_00)" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) , identifier ))) ;) (expression_statement "psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10);" (assignment_expression "psVar28 = (share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10)" identifier = (cast_expression "(share_globreq *)(**(code **)(pcVar50 + 0x3815c))(1,0x10)" ( (type_descriptor "share_globreq *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x3815c))(1,0x10)" (parenthesized_expression "(**(code **)(pcVar50 + 0x3815c))" ( (pointer_expression "**(code **)(pcVar50 + 0x3815c)" * (pointer_expression "*(code **)(pcVar50 + 0x3815c)" * (cast_expression "(code **)(pcVar50 + 0x3815c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x3815c)" ( (binary_expression "pcVar50 + 0x3815c" identifier + number_literal) ))))) )) (argument_list "(1,0x10)" ( number_literal , number_literal ))))) ;) (expression_statement "psVar31 = cs_00->globreq_tail;" (assignment_expression "psVar31 = cs_00->globreq_tail" identifier = (field_expression "cs_00->globreq_tail" identifier -> field_identifier)) ;) (expression_statement "psVar28->next = (share_globreq *)0x0;" (assignment_expression "psVar28->next = (share_globreq *)0x0" (field_expression "psVar28->next" identifier -> field_identifier) = (cast_expression "(share_globreq *)0x0" ( (type_descriptor "share_globreq *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (psVar31 == (share_globreq *)0x0) {\n                          cs_00->globreq_head = psVar28;\n                        }\n                        else {\n                          psVar31->next = psVar28;\n                        }" if (parenthesized_expression "(psVar31 == (share_globreq *)0x0)" ( (binary_expression "psVar31 == (share_globreq *)0x0" identifier == (cast_expression "(share_globreq *)0x0" ( (type_descriptor "share_globreq *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          cs_00->globreq_head = psVar28;\n                        }" { (expression_statement "cs_00->globreq_head = psVar28;" (assignment_expression "cs_00->globreq_head = psVar28" (field_expression "cs_00->globreq_head" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n                          psVar31->next = psVar28;\n                        }" else (compound_statement "{\n                          psVar31->next = psVar28;\n                        }" { (expression_statement "psVar31->next = psVar28;" (assignment_expression "psVar31->next = psVar28" (field_expression "psVar31->next" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "psVar28->fwd = e;" (assignment_expression "psVar28->fwd = e" (field_expression "psVar28->fwd" identifier -> field_identifier) = identifier) ;) (expression_statement "psVar28->type = 0;" (assignment_expression "psVar28->type = 0" (field_expression "psVar28->type" identifier -> field_identifier) = number_literal) ;) (expression_statement "psVar28->want_reply = (int)psStack_108;" (assignment_expression "psVar28->want_reply = (int)psStack_108" (field_expression "psVar28->want_reply" identifier -> field_identifier) = (cast_expression "(int)psStack_108" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }" else (compound_statement "{\n                        (**(code **)(pcVar50 + 0x38124))(e);\n                        (**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);\n                      }" { (expression_statement "(**(code **)(pcVar50 + 0x38124))(e);" (call_expression "(**(code **)(pcVar50 + 0x38124))(e)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38124))" ( (pointer_expression "**(code **)(pcVar50 + 0x38124)" * (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(e)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00);" (call_expression "(**(code **)(pcVar50 + 0x38910))(cs_00->parent->ssh,cs_00)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38910))" ( (pointer_expression "**(code **)(pcVar50 + 0x38910)" * (pointer_expression "*(code **)(pcVar50 + 0x38910)" * (cast_expression "(code **)(pcVar50 + 0x38910)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38910)" ( (binary_expression "pcVar50 + 0x38910" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,cs_00)" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) , identifier ))) ;) }))) }))) (expression_statement "(**(code **)(pcVar50 + 0x38124))(psVar47);" (call_expression "(**(code **)(pcVar50 + 0x38124))(psVar47)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38124))" ( (pointer_expression "**(code **)(pcVar50 + 0x38124)" * (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(psVar47)" ( identifier ))) ;) (expression_statement "cs_00->recvlen = 0;" (assignment_expression "cs_00->recvlen = 0" (field_expression "cs_00->recvlen" identifier -> field_identifier) = number_literal) ;) (expression_statement "psVar46 = psVar47;" (assignment_expression "psVar46 = psVar47" identifier = identifier) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00078830:\n                pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);" statement_identifier : (expression_statement "pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144);" (assignment_expression "pcVar18 = (char *)(*pcVar52)(iVar39 + -0x4144)" identifier = (cast_expression "(char *)(*pcVar52)(iVar39 + -0x4144)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar52)(iVar39 + -0x4144)" (parenthesized_expression "(*pcVar52)" ( (pointer_expression "*pcVar52" * identifier) )) (argument_list "(iVar39 + -0x4144)" ( (binary_expression "iVar39 + -0x4144" identifier + number_literal) ))))) ;)) (expression_statement "psVar43 = psVar30;" (assignment_expression "psVar43 = psVar30" identifier = identifier) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (if_statement "if (bVar1 != 1) {\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }" if (parenthesized_expression "(bVar1 != 1)" ( (binary_expression "bVar1 != 1" identifier != number_literal) )) (compound_statement "{\nLAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);\n                goto LAB_000787a4;\n              }" { (labeled_statement "LAB_0007878c:\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);" statement_identifier : (expression_statement "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1);" (assignment_expression "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1)" identifier = (cast_expression "(char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38158))" ( (pointer_expression "**(code **)(pcVar50 + 0x38158)" * (pointer_expression "*(code **)(pcVar50 + 0x38158)" * (cast_expression "(code **)(pcVar50 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38158)" ( (binary_expression "pcVar50 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar50 + 0x38144) + -0x3f54,bVar1)" ( (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x3f54" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier ))))) ;)) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "(*(*cs_00->sock)->close)(cs_00->sock);" (call_expression "(*(*cs_00->sock)->close)(cs_00->sock)" (parenthesized_expression "(*(*cs_00->sock)->close)" ( (pointer_expression "*(*cs_00->sock)->close" * (field_expression "(*cs_00->sock)->close" (parenthesized_expression "(*cs_00->sock)" ( (pointer_expression "*cs_00->sock" * (field_expression "cs_00->sock" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(cs_00->sock)" ( (field_expression "cs_00->sock" identifier -> field_identifier) ))) ;) (expression_statement "cs_00->sock = (Socket)0x0;" (assignment_expression "cs_00->sock = (Socket)0x0" (field_expression "cs_00->sock" identifier -> field_identifier) = (cast_expression "(Socket)0x0" ( (type_descriptor "Socket" type_identifier) ) number_literal)) ;) (expression_statement "share_try_cleanup(cs_00);" (call_expression "share_try_cleanup(cs_00)" identifier (argument_list "(cs_00)" ( identifier ))) ;) (expression_statement "cs_00->recvlen = 0;" (assignment_expression "cs_00->recvlen = 0" (field_expression "cs_00->recvlen" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (labeled_statement "LAB_00078844:\n            puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3);" statement_identifier : (expression_statement "puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3);" (assignment_expression "puVar24 = (undefined1 *)((int)&psVar46[-1].forwardings + 3)" identifier = (cast_expression "(undefined1 *)((int)&psVar46[-1].forwardings + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar46[-1].forwardings + 3)" ( (binary_expression "(int)&psVar46[-1].forwardings + 3" (cast_expression "(int)&psVar46[-1].forwardings" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar46[-1].forwardings" & (field_expression "psVar46[-1].forwardings" (subscript_expression "psVar46[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;)) (if_statement "if ((bVar1 == 0x62) &&\n               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)) {\n              psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);\n              iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0);\n              psVar30 = psStack_e8;\n              if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }" if (parenthesized_expression "((bVar1 == 0x62) &&\n               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24))" ( (binary_expression "(bVar1 == 0x62) &&\n               (psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)" (parenthesized_expression "(bVar1 == 0x62)" ( (binary_expression "bVar1 == 0x62" identifier == number_literal) )) && (parenthesized_expression "(psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24)" ( (comma_expression "psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c), 3 < (int)puVar24" (assignment_expression "psVar43 = *(ssh_sharing_connstate **)(pcVar50 + 0x3885c)" identifier = (pointer_expression "*(ssh_sharing_connstate **)(pcVar50 + 0x3885c)" * (cast_expression "(ssh_sharing_connstate **)(pcVar50 + 0x3885c)" ( (type_descriptor "ssh_sharing_connstate **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x3885c)" ( (binary_expression "pcVar50 + 0x3885c" identifier + number_literal) ))))) , (binary_expression "3 < (int)puVar24" number_literal < (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n              psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);\n              iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0);\n              psVar30 = psStack_e8;\n              if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }" { (expression_statement "psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c);" (assignment_expression "psVar43 = (ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c)" identifier = (cast_expression "(ssh_sharing_connstate *)(psVar43[1].recvbuf + 0x2a7c)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psVar43[1].recvbuf + 0x2a7c)" ( (binary_expression "psVar43[1].recvbuf + 0x2a7c" (field_expression "psVar43[1].recvbuf" (subscript_expression "psVar43[1]" identifier [ number_literal ]) . field_identifier) + number_literal) )))) ;) (expression_statement "iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0);" (assignment_expression "iVar39 = getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0)" identifier = (call_expression "getstring_inner(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0)" identifier (argument_list "(cs_00->recvbuf + 9,(int)puVar24,(char **)&psStack_e8,\n                                       (int *)0x0)" ( (binary_expression "cs_00->recvbuf + 9" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) , (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(char **)&psStack_e8" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&psStack_e8" & identifier)) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "psVar30 = psStack_e8;" (assignment_expression "psVar30 = psStack_e8" identifier = identifier) ;) (if_statement "if ((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)) {\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }" if (parenthesized_expression "((iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0))" ( (binary_expression "(iVar39 != 0) && (psStack_e8 != (ssh_sharing_connstate *)0x0)" (parenthesized_expression "(iVar39 != 0)" ( (binary_expression "iVar39 != 0" identifier != number_literal) )) && (parenthesized_expression "(psStack_e8 != (ssh_sharing_connstate *)0x0)" ( (binary_expression "psStack_e8 != (ssh_sharing_connstate *)0x0" identifier != (cast_expression "(ssh_sharing_connstate *)0x0" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                psStack_108 = psStack_e8;\n                iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);\n                if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar39 = *(int *)(pcVar50 + 0x380fc);\n                iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);\n                if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }\n                ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                (**(code **)(pcVar50 + 0x38124))(psVar30);\n                ppsStack_e0 = ppsVar20;\n                psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                uVar32 = cs_00->recvbuf[0x14];\n                puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);\n                uVar6 = cs_00->recvbuf[0x15];\n                if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }\n                puVar48 = (uchar *)((int)&psVar46->crLine + 1);\n                iVar21 = (int)puVar25 - (int)puVar48;\n                psVar46 = (ssh_sharing_connstate *)0x0;\n                if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }\n                if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }\n                puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);\n                if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }" { (expression_statement "psStack_108 = psStack_e8;" (assignment_expression "psStack_108 = psStack_e8" identifier = identifier) ;) (expression_statement "iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300);" (assignment_expression "iVar39 = (**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300)" identifier = (call_expression "(**(code **)(pcVar50 + 0x38c4c))\n                                   (psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38c4c))" ( (pointer_expression "**(code **)(pcVar50 + 0x38c4c)" * (pointer_expression "*(code **)(pcVar50 + 0x38c4c)" * (cast_expression "(code **)(pcVar50 + 0x38c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38c4c)" ( (binary_expression "pcVar50 + 0x38c4c" identifier + number_literal) ))))) )) (argument_list "(psStack_e8,*(int *)(pcVar50 + 0x380fc) + 0x4300)" ( identifier , (binary_expression "*(int *)(pcVar50 + 0x380fc) + 0x4300" (pointer_expression "*(int *)(pcVar50 + 0x380fc)" * (cast_expression "(int *)(pcVar50 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x380fc)" ( (binary_expression "pcVar50 + 0x380fc" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if ((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)) {\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }" if (parenthesized_expression "((iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0))" ( (binary_expression "(iVar39 == 0) &&\n                   (iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)" (parenthesized_expression "(iVar39 == 0)" ( (binary_expression "iVar39 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0)" ( (comma_expression "iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh), iVar39 == 0" (assignment_expression "iVar39 = (**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh)" identifier = (call_expression "(**(code **)(pcVar50 + 0x3865c))(cs_00->parent->ssh)" (parenthesized_expression "(**(code **)(pcVar50 + 0x3865c))" ( (pointer_expression "**(code **)(pcVar50 + 0x3865c)" * (pointer_expression "*(code **)(pcVar50 + 0x3865c)" * (cast_expression "(code **)(pcVar50 + 0x3865c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x3865c)" ( (binary_expression "pcVar50 + 0x3865c" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh)" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) )))) , (binary_expression "iVar39 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                  ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  ppsStack_e0 = ppsVar20;\n                  puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }\n                  goto LAB_000784dc;\n                }" { (expression_statement "ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);" (assignment_expression "ppsVar20 = *(Socket *)(cs_00->recvbuf + 5)" identifier = (pointer_expression "*(Socket *)(cs_00->recvbuf + 5)" * (cast_expression "(Socket *)(cs_00->recvbuf + 5)" ( (type_descriptor "Socket *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cs_00->recvbuf + 5)" ( (binary_expression "cs_00->recvbuf + 5" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar50 + 0x38124))(psVar30);" (call_expression "(**(code **)(pcVar50 + 0x38124))(psVar30)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38124))" ( (pointer_expression "**(code **)(pcVar50 + 0x38124)" * (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(psVar30)" ( identifier ))) ;) (expression_statement "ppsStack_e0 = ppsVar20;" (assignment_expression "ppsStack_e0 = ppsVar20" identifier = identifier) ;) (expression_statement "puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);" (assignment_expression "puVar29 = (undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0)" identifier = (cast_expression "(undefined4 *)\n                            find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0)" identifier (argument_list "(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0)" ( (field_expression "cs_00->channels_by_server" identifier -> field_identifier) , (pointer_expression "&psStack_e8" & identifier) , (cast_expression "(cmpfn234)0x0" ( (type_descriptor "cmpfn234" type_identifier) ) number_literal) ))))) ;) (if_statement "if (puVar29 == (undefined4 *)0x0) {\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }\n                  else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }" if (parenthesized_expression "(puVar29 == (undefined4 *)0x0)" ( (binary_expression "puVar29 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    pcVar52 = *(code **)(pcVar50 + 0x38158);\n                    iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);\n                    share_disconnect(cs_00,pcVar18);\n                    (**(code **)(pcVar50 + 0x38124))(pcVar18);\n                    cs_00->recvlen = 0;\n                  }" { (expression_statement "pcVar52 = *(code **)(pcVar50 + 0x38158);" (assignment_expression "pcVar52 = *(code **)(pcVar50 + 0x38158)" identifier = (pointer_expression "*(code **)(pcVar50 + 0x38158)" * (cast_expression "(code **)(pcVar50 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38158)" ( (binary_expression "pcVar50 + 0x38158" identifier + number_literal) ))))) ;) (expression_statement "iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8;" (assignment_expression "iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fe8" identifier = (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x3fe8" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_000794d0:\n                    pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);" statement_identifier : (expression_statement "pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20);" (assignment_expression "pcVar18 = (char *)(*pcVar52)(iVar39,ppsVar20)" identifier = (cast_expression "(char *)(*pcVar52)(iVar39,ppsVar20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar52)(iVar39,ppsVar20)" (parenthesized_expression "(*pcVar52)" ( (pointer_expression "*pcVar52" * identifier) )) (argument_list "(iVar39,ppsVar20)" ( identifier , identifier ))))) ;)) (expression_statement "share_disconnect(cs_00,pcVar18);" (call_expression "share_disconnect(cs_00,pcVar18)" identifier (argument_list "(cs_00,pcVar18)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar50 + 0x38124))(pcVar18);" (call_expression "(**(code **)(pcVar50 + 0x38124))(pcVar18)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38124))" ( (pointer_expression "**(code **)(pcVar50 + 0x38124)" * (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(pcVar18)" ( identifier ))) ;) (expression_statement "cs_00->recvlen = 0;" (assignment_expression "cs_00->recvlen = 0" (field_expression "cs_00->recvlen" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }" else (compound_statement "{\n                    ppStack_c0 = (plug_function_table *)*puVar29;\n                    send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);\n                    cs_00->recvlen = 0;\n                  }" { (expression_statement "ppStack_c0 = (plug_function_table *)*puVar29;" (assignment_expression "ppStack_c0 = (plug_function_table *)*puVar29" identifier = (cast_expression "(plug_function_table *)*puVar29" ( (type_descriptor "plug_function_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar29" * identifier))) ;) (expression_statement "send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc);" (call_expression "send_packet_to_downstream\n                              ((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc)" identifier (argument_list "((ssh_sharing_connstate *)&cs_00->sock,100,&ppStack_c0,4,\n                               (share_channel *)0x0,(share_channel *)0xc)" ( (cast_expression "(ssh_sharing_connstate *)&cs_00->sock" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cs_00->sock" & (field_expression "cs_00->sock" identifier -> field_identifier))) , number_literal , (pointer_expression "&ppStack_c0" & identifier) , number_literal , (cast_expression "(share_channel *)0x0" ( (type_descriptor "share_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(share_channel *)0xc" ( (type_descriptor "share_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "cs_00->recvlen = 0;" (assignment_expression "cs_00->recvlen = 0" (field_expression "cs_00->recvlen" identifier -> field_identifier) = number_literal) ;) }))) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (expression_statement "iVar39 = *(int *)(pcVar50 + 0x380fc);" (assignment_expression "iVar39 = *(int *)(pcVar50 + 0x380fc)" identifier = (pointer_expression "*(int *)(pcVar50 + 0x380fc)" * (cast_expression "(int *)(pcVar50 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x380fc)" ( (binary_expression "pcVar50 + 0x380fc" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c);" (assignment_expression "iVar17 = (**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c)" identifier = (call_expression "(**(code **)(pcVar50 + 0x38c4c))(psVar30,iVar39 + 0x429c)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38c4c))" ( (pointer_expression "**(code **)(pcVar50 + 0x38c4c)" * (pointer_expression "*(code **)(pcVar50 + 0x38c4c)" * (cast_expression "(code **)(pcVar50 + 0x38c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38c4c)" ( (binary_expression "pcVar50 + 0x38c4c" identifier + number_literal) ))))) )) (argument_list "(psVar30,iVar39 + 0x429c)" ( identifier , (binary_expression "iVar39 + 0x429c" identifier + number_literal) )))) ;) (if_statement "if (iVar17 != 0) {\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n                  (**(code **)(pcVar50 + 0x38124))(psVar30);\n                  psStack_108 = psVar30;\n                  goto LAB_00078df8;\n                }" { (expression_statement "(**(code **)(pcVar50 + 0x38124))(psVar30);" (call_expression "(**(code **)(pcVar50 + 0x38124))(psVar30)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38124))" ( (pointer_expression "**(code **)(pcVar50 + 0x38124)" * (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(psVar30)" ( identifier ))) ;) (expression_statement "psStack_108 = psVar30;" (assignment_expression "psStack_108 = psVar30" identifier = identifier) ;) (goto_statement "goto LAB_00078df8;" goto statement_identifier ;) })) (expression_statement "ppsVar20 = *(Socket *)(cs_00->recvbuf + 5);" (assignment_expression "ppsVar20 = *(Socket *)(cs_00->recvbuf + 5)" identifier = (pointer_expression "*(Socket *)(cs_00->recvbuf + 5)" * (cast_expression "(Socket *)(cs_00->recvbuf + 5)" ( (type_descriptor "Socket *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cs_00->recvbuf + 5)" ( (binary_expression "cs_00->recvbuf + 5" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar50 + 0x38124))(psVar30);" (call_expression "(**(code **)(pcVar50 + 0x38124))(psVar30)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38124))" ( (pointer_expression "**(code **)(pcVar50 + 0x38124)" * (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(psVar30)" ( identifier ))) ;) (expression_statement "ppsStack_e0 = ppsVar20;" (assignment_expression "ppsStack_e0 = ppsVar20" identifier = identifier) ;) (expression_statement "psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);" (assignment_expression "psStack_108 = (ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0)" identifier = (cast_expression "(ssh_sharing_connstate *)\n                              find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0)" identifier (argument_list "(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0)" ( (field_expression "cs_00->channels_by_server" identifier -> field_identifier) , (pointer_expression "&psStack_e8" & identifier) , (cast_expression "(cmpfn234)0x0" ( (type_descriptor "cmpfn234" type_identifier) ) number_literal) ))))) ;) (if_statement "if (psStack_108 == (ssh_sharing_connstate *)0x0) {\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }" if (parenthesized_expression "(psStack_108 == (ssh_sharing_connstate *)0x0)" ( (binary_expression "psStack_108 == (ssh_sharing_connstate *)0x0" identifier == (cast_expression "(ssh_sharing_connstate *)0x0" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  pcVar52 = *(code **)(pcVar50 + 0x38158);\n                  iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }" { (expression_statement "pcVar52 = *(code **)(pcVar50 + 0x38158);" (assignment_expression "pcVar52 = *(code **)(pcVar50 + 0x38158)" identifier = (pointer_expression "*(code **)(pcVar50 + 0x38158)" * (cast_expression "(code **)(pcVar50 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38158)" ( (binary_expression "pcVar50 + 0x38158" identifier + number_literal) ))))) ;) (expression_statement "iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0;" (assignment_expression "iVar39 = *(int *)(pcVar50 + 0x38144) + -0x3fb0" identifier = (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x3fb0" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_000794d0;" goto statement_identifier ;) })) (if_statement "if ((int)puVar25 < 0x11) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }" if (parenthesized_expression "((int)puVar25 < 0x11)" ( (binary_expression "(int)puVar25 < 0x11" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }" { (expression_statement "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);" (assignment_expression "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c)" identifier = (cast_expression "(char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38158))" ( (pointer_expression "**(code **)(pcVar50 + 0x38158)" * (pointer_expression "*(code **)(pcVar50 + 0x38158)" * (cast_expression "(code **)(pcVar50 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38158)" ( (binary_expression "pcVar50 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar50 + 0x38144) + -0x3f7c)" ( (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x3f7c" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "uVar32 = cs_00->recvbuf[0x14];" (assignment_expression "uVar32 = cs_00->recvbuf[0x14]" identifier = (subscript_expression "cs_00->recvbuf[0x14]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2);" (assignment_expression "puVar24 = (undefined1 *)((int)&psVar46[-1].channels_by_server + 2)" identifier = (cast_expression "(undefined1 *)((int)&psVar46[-1].channels_by_server + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar46[-1].channels_by_server + 2)" ( (binary_expression "(int)&psVar46[-1].channels_by_server + 2" (cast_expression "(int)&psVar46[-1].channels_by_server" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar46[-1].channels_by_server" & (field_expression "psVar46[-1].channels_by_server" (subscript_expression "psVar46[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "uVar6 = cs_00->recvbuf[0x15];" (assignment_expression "uVar6 = cs_00->recvbuf[0x15]" identifier = (subscript_expression "cs_00->recvbuf[0x15]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if ((int)puVar24 < 4) {\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }" if (parenthesized_expression "((int)puVar24 < 4)" ( (binary_expression "(int)puVar24 < 4" (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  iVar17 = x11_identify_auth_proto((char *)0x0);\n                  (**(code **)(pcVar50 + 0x38124))(0);\nLAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;\n                }" { (expression_statement "iVar17 = x11_identify_auth_proto((char *)0x0);" (assignment_expression "iVar17 = x11_identify_auth_proto((char *)0x0)" identifier = (call_expression "x11_identify_auth_proto((char *)0x0)" identifier (argument_list "((char *)0x0)" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "(**(code **)(pcVar50 + 0x38124))(0);" (call_expression "(**(code **)(pcVar50 + 0x38124))(0)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38124))" ( (pointer_expression "**(code **)(pcVar50 + 0x38124)" * (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) (labeled_statement "LAB_0007949c:\n                  psVar46 = (ssh_sharing_connstate *)0xffffffff;" statement_identifier : (expression_statement "psVar46 = (ssh_sharing_connstate *)0xffffffff;" (assignment_expression "psVar46 = (ssh_sharing_connstate *)0xffffffff" identifier = (cast_expression "(ssh_sharing_connstate *)0xffffffff" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }" else (compound_statement "{\n                  iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }\n                  iVar17 = x11_identify_auth_proto((char *)psStack_e8);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar46 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_0007949c;\n                }" { (expression_statement "iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0);" (assignment_expression "iVar17 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0)" identifier = (call_expression "getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0)" identifier (argument_list "(cs_00->recvbuf + 0x16,(int)puVar24,(char **)&psStack_e8,\n                                           (int *)0x0)" ( (binary_expression "cs_00->recvbuf + 0x16" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) , (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(char **)&psStack_e8" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&psStack_e8" & identifier)) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "psVar46 = psStack_e8;" (assignment_expression "psVar46 = psStack_e8" identifier = identifier) ;) (if_statement "if (iVar17 == 0) {\n                    FUN_0007896c();\n                    return;\n                  }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                    FUN_0007896c();\n                    return;\n                  }" { (expression_statement "FUN_0007896c();" (call_expression "FUN_0007896c()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar17 = x11_identify_auth_proto((char *)psStack_e8);" (assignment_expression "iVar17 = x11_identify_auth_proto((char *)psStack_e8)" identifier = (call_expression "x11_identify_auth_proto((char *)psStack_e8)" identifier (argument_list "((char *)psStack_e8)" ( (cast_expression "(char *)psStack_e8" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "(**(code **)(pcVar50 + 0x38124))(psVar46);" (call_expression "(**(code **)(pcVar50 + 0x38124))(psVar46)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38124))" ( (pointer_expression "**(code **)(pcVar50 + 0x38124)" * (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(psVar46)" ( identifier ))) ;) (expression_statement "iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8);" (assignment_expression "iVar21 = getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8)" identifier = (call_expression "getstring_inner(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8)" identifier (argument_list "(cs_00->recvbuf + 0x16,(int)puVar24,(char **)0x0,\n                                           (int *)&psStack_e8)" ( (binary_expression "cs_00->recvbuf + 0x16" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) , (cast_expression "(int)puVar24" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(int *)&psStack_e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_e8" & identifier)) )))) ;) (expression_statement "psVar46 = psStack_e8;" (assignment_expression "psVar46 = psStack_e8" identifier = identifier) ;) (if_statement "if (iVar21 == 0) goto LAB_0007949c;" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0007949c;" goto statement_identifier ;)) }))) (expression_statement "puVar48 = (uchar *)((int)&psVar46->crLine + 1);" (assignment_expression "puVar48 = (uchar *)((int)&psVar46->crLine + 1)" identifier = (cast_expression "(uchar *)((int)&psVar46->crLine + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar46->crLine + 1)" ( (binary_expression "(int)&psVar46->crLine + 1" (cast_expression "(int)&psVar46->crLine" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar46->crLine" & (field_expression "psVar46->crLine" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "iVar21 = (int)puVar25 - (int)puVar48;" (assignment_expression "iVar21 = (int)puVar25 - (int)puVar48" identifier = (binary_expression "(int)puVar25 - (int)puVar48" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)puVar48" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "psVar46 = (ssh_sharing_connstate *)0x0;" (assignment_expression "psVar46 = (ssh_sharing_connstate *)0x0" identifier = (cast_expression "(ssh_sharing_connstate *)0x0" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar21 < 4) {\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }\n                else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }" if (parenthesized_expression "(iVar21 < 4)" ( (binary_expression "iVar21 < 4" identifier < number_literal) )) (compound_statement "{\nLAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;\n                }" { (labeled_statement "LAB_00078ff4:\n                  psVar30 = (ssh_sharing_connstate *)0xffffffff;" statement_identifier : (expression_statement "psVar30 = (ssh_sharing_connstate *)0xffffffff;" (assignment_expression "psVar30 = (ssh_sharing_connstate *)0xffffffff" identifier = (cast_expression "(ssh_sharing_connstate *)0xffffffff" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }" else (compound_statement "{\n                  iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);\n                  psVar46 = psStack_e8;\n                  if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }\n                  iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);\n                  psVar30 = psStack_e8;\n                  if (iVar21 == 0) goto LAB_00078ff4;\n                }" { (expression_statement "iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0);" (assignment_expression "iVar22 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0)" identifier = (call_expression "getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0)" identifier (argument_list "(puVar36 + (int)puVar48,iVar21,(char **)&psStack_e8,\n                                           (int *)0x0)" ( (binary_expression "puVar36 + (int)puVar48" identifier + (cast_expression "(int)puVar48" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , (cast_expression "(char **)&psStack_e8" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&psStack_e8" & identifier)) , (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "psVar46 = psStack_e8;" (assignment_expression "psVar46 = psStack_e8" identifier = identifier) ;) (if_statement "if (iVar22 == 0) {\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n                    psVar46 = (ssh_sharing_connstate *)0x0;\n                  }" { (expression_statement "psVar46 = (ssh_sharing_connstate *)0x0;" (assignment_expression "psVar46 = (ssh_sharing_connstate *)0x0" identifier = (cast_expression "(ssh_sharing_connstate *)0x0" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8);" (assignment_expression "iVar21 = getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8)" identifier = (call_expression "getstring_inner(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8)" identifier (argument_list "(puVar36 + (int)puVar48,iVar21,(char **)0x0,\n                                           (int *)&psStack_e8)" ( (binary_expression "puVar36 + (int)puVar48" identifier + (cast_expression "(int)puVar48" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(int *)&psStack_e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_e8" & identifier)) )))) ;) (expression_statement "psVar30 = psStack_e8;" (assignment_expression "psVar30 = psStack_e8" identifier = identifier) ;) (if_statement "if (iVar21 == 0) goto LAB_00078ff4;" if (parenthesized_expression "(iVar21 == 0)" ( (binary_expression "iVar21 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00078ff4;" goto statement_identifier ;)) }))) (if_statement "if ((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)) {\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }" if (parenthesized_expression "((int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3))" ( (binary_expression "(int)puVar25 <= (int)(puVar48 + (int)psVar30 + 3)" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(puVar48 + (int)psVar30 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar48 + (int)psVar30 + 3)" ( (binary_expression "puVar48 + (int)psVar30 + 3" (binary_expression "puVar48 + (int)psVar30" identifier + (cast_expression "(int)psVar30" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )))) )) (compound_statement "{\n                  pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar50 + 0x38124))(psVar46);\n                  goto LAB_000787a4;\n                }" { (expression_statement "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c);" (assignment_expression "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c)" identifier = (cast_expression "(char *)(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x38158))\n                                              (*(int *)(pcVar50 + 0x38144) + -0x3f7c)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38158))" ( (pointer_expression "**(code **)(pcVar50 + 0x38158)" * (pointer_expression "*(code **)(pcVar50 + 0x38158)" * (cast_expression "(code **)(pcVar50 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38158)" ( (binary_expression "pcVar50 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar50 + 0x38144) + -0x3f7c)" ( (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x3f7c" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar50 + 0x38124))(psVar46);" (call_expression "(**(code **)(pcVar50 + 0x38124))(psVar46)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38124))" ( (pointer_expression "**(code **)(pcVar50 + 0x38124)" * (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(psVar46)" ( identifier ))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "puVar36 = puVar36 + (int)(puVar48 + (int)psVar30);" (assignment_expression "puVar36 = puVar36 + (int)(puVar48 + (int)psVar30)" identifier = (binary_expression "puVar36 + (int)(puVar48 + (int)psVar30)" identifier + (cast_expression "(int)(puVar48 + (int)psVar30)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar48 + (int)psVar30)" ( (binary_expression "puVar48 + (int)psVar30" identifier + (cast_expression "(int)psVar30" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (if_statement "if (-1 < iVar17) {\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }" if (parenthesized_expression "(-1 < iVar17)" ( (binary_expression "-1 < iVar17" number_literal < identifier) )) (compound_statement "{\n                  uVar7 = *puVar36;\n                  bVar13 = uVar6 != '\0';\n                  uVar6 = puVar36[1];\n                  uVar8 = puVar36[3];\n                  uVar9 = puVar36[2];\n                  psStack_108->got_verstring = iVar17;\n                  pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);\n                  pcVar52 = *(code **)(pcVar50 + 0x38124);\n                  psStack_108->curr_packetlen = (int)pvVar23;\n                  (*pcVar52)(psVar46);\n                  iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);\n                  psStack_108->sent_verstring = iVar17;\n                  *(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;\n                  psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));\n                  psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));\n                  puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;\n                  puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);\n                  puVar24[4] = 0;\n                  puVar24[5] = 0;\n                  uVar35 = *(uint *)(iVar39 + 0x429c);\n                  uVar10 = *(undefined1 *)(iVar39 + 0x42a0);\n                  uVar11 = *(undefined1 *)(iVar39 + 0x42a1);\n                  uVar12 = *(undefined1 *)(iVar39 + 0x42a2);\n                  puVar24[3] = (char)ppsVar20;\n                  *puVar24 = (char)((uint)ppsVar20 >> 0x18);\n                  puVar24[1] = (char)((uint)ppsVar20 >> 0x10);\n                  puVar24[2] = (char)((uint)ppsVar20 >> 8);\n                  puVar24[7] = 7;\n                  puVar24[6] = 0;\n                  puVar25 = puVar24 + 8;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;\n                  puVar25 = puVar24 + 0xb;\n                  uVar41 = (uint)puVar25 & 3;\n                  *(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;\n                  puVar24[0xc] = uVar10;\n                  puVar24[0xd] = uVar11;\n                  puVar24[0xe] = uVar12;\n                  puVar24[0x10] = bVar13;\n                  puVar24[0x11] = (char)((uint)psVar43 >> 0x18);\n                  puVar24[0x12] = (char)((uint)psVar43 >> 0x10);\n                  puVar24[0x13] = (char)((uint)psVar43 >> 8);\n                  puVar24[0x14] = (char)psVar43;\n                  pcVar52 = *(code **)(pcVar50 + 0x38c14);\n                  puVar24[0xf] = uVar32 != '\0';\n                  (*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);\n                  puVar25 = puVar24 + (int)psVar43;\n                  puVar25[0x15] = (char)((uint)psVar46 >> 0x18);\n                  puVar25[0x16] = (char)((uint)psVar46 >> 0x10);\n                  puVar25[0x17] = (char)((uint)psVar46 >> 8);\n                  puVar25[0x18] = (char)psVar46;\n                  (**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);\n                  puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));\n                  puVar25[0x1c] = uVar8;\n                  puVar25[0x19] = uVar7;\n                  puVar25[0x1a] = uVar6;\n                  puVar25[0x1b] = uVar9;\n                  (**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);\n                  (**(code **)(pcVar50 + 0x38124))(puVar24);\n                  cs_00->recvlen = 0;\n                  goto LAB_000784dc;\n                }" { (expression_statement "uVar7 = *puVar36;" (assignment_expression "uVar7 = *puVar36" identifier = (pointer_expression "*puVar36" * identifier)) ;) (expression_statement "bVar13 = uVar6 != '\0';" (assignment_expression "bVar13 = uVar6 != '\0'" identifier = (binary_expression "uVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "uVar6 = puVar36[1];" (assignment_expression "uVar6 = puVar36[1]" identifier = (subscript_expression "puVar36[1]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = puVar36[3];" (assignment_expression "uVar8 = puVar36[3]" identifier = (subscript_expression "puVar36[3]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = puVar36[2];" (assignment_expression "uVar9 = puVar36[2]" identifier = (subscript_expression "puVar36[2]" identifier [ number_literal ])) ;) (expression_statement "psStack_108->got_verstring = iVar17;" (assignment_expression "psStack_108->got_verstring = iVar17" (field_expression "psStack_108->got_verstring" identifier -> field_identifier) = identifier) ;) (expression_statement "pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf);" (assignment_expression "pvVar23 = x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf)" identifier = (call_expression "x11_dehexify((char *)psVar46,(int *)psStack_108->recvbuf)" identifier (argument_list "((char *)psVar46,(int *)psStack_108->recvbuf)" ( (cast_expression "(char *)psVar46" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int *)psStack_108->recvbuf" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "psStack_108->recvbuf" identifier -> field_identifier)) )))) ;) (expression_statement "pcVar52 = *(code **)(pcVar50 + 0x38124);" (assignment_expression "pcVar52 = *(code **)(pcVar50 + 0x38124)" identifier = (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) ;) (expression_statement "psStack_108->curr_packetlen = (int)pvVar23;" (assignment_expression "psStack_108->curr_packetlen = (int)pvVar23" (field_expression "psStack_108->curr_packetlen" identifier -> field_identifier) = (cast_expression "(int)pvVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(*pcVar52)(psVar46);" (call_expression "(*pcVar52)(psVar46)" (parenthesized_expression "(*pcVar52)" ( (pointer_expression "*pcVar52" * identifier) )) (argument_list "(psVar46)" ( identifier ))) ;) (expression_statement "iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108);" (assignment_expression "iVar17 = (**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108)" identifier = (call_expression "(**(code **)(pcVar50 + 0x38920))\n                                     (cs_00->parent->ssh,iVar17,cs_00,psStack_108)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38920))" ( (pointer_expression "**(code **)(pcVar50 + 0x38920)" * (pointer_expression "*(code **)(pcVar50 + 0x38920)" * (cast_expression "(code **)(pcVar50 + 0x38920)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38920)" ( (binary_expression "pcVar50 + 0x38920" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,iVar17,cs_00,psStack_108)" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) , identifier , identifier , identifier )))) ;) (expression_statement "psStack_108->sent_verstring = iVar17;" (assignment_expression "psStack_108->sent_verstring = iVar17" (field_expression "psStack_108->sent_verstring" identifier -> field_identifier) = identifier) ;) (expression_statement "*(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13;" (assignment_expression "*(uint *)(psStack_108->recvbuf + 4) = (uint)bVar13" (pointer_expression "*(uint *)(psStack_108->recvbuf + 4)" * (cast_expression "(uint *)(psStack_108->recvbuf + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psStack_108->recvbuf + 4)" ( (binary_expression "psStack_108->recvbuf + 4" (field_expression "psStack_108->recvbuf" identifier -> field_identifier) + number_literal) )))) = (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc));" (assignment_expression "psVar43 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc))" identifier = (cast_expression "(ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc))" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0xc))" (parenthesized_expression "(**(code **)(pcVar50 + 0x38b58))" ( (pointer_expression "**(code **)(pcVar50 + 0x38b58)" * (pointer_expression "*(code **)(pcVar50 + 0x38b58)" * (cast_expression "(code **)(pcVar50 + 0x38b58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38b58)" ( (binary_expression "pcVar50 + 0x38b58" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar17 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar17 + 0xc)" * (cast_expression "(undefined4 *)(iVar17 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xc)" ( (binary_expression "iVar17 + 0xc" identifier + number_literal) )))) ))))) ;) (expression_statement "psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10));" (assignment_expression "psVar46 = (ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10))" identifier = (cast_expression "(ssh_sharing_connstate *)\n                            (**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10))" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x38b58))(*(undefined4 *)(iVar17 + 0x10))" (parenthesized_expression "(**(code **)(pcVar50 + 0x38b58))" ( (pointer_expression "**(code **)(pcVar50 + 0x38b58)" * (pointer_expression "*(code **)(pcVar50 + 0x38b58)" * (cast_expression "(code **)(pcVar50 + 0x38b58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38b58)" ( (binary_expression "pcVar50 + 0x38b58" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar17 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar17 + 0x10)" * (cast_expression "(undefined4 *)(iVar17 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))) ))))) ;) (expression_statement "puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46;" (assignment_expression "puVar36 = (uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46" identifier = (binary_expression "(uchar *)((int)&psVar43->curr_packetlen + 1) + (int)psVar46" (cast_expression "(uchar *)((int)&psVar43->curr_packetlen + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar43->curr_packetlen + 1)" ( (binary_expression "(int)&psVar43->curr_packetlen + 1" (cast_expression "(int)&psVar43->curr_packetlen" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar43->curr_packetlen" & (field_expression "psVar43->curr_packetlen" identifier -> field_identifier))) + number_literal) ))) + (cast_expression "(int)psVar46" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1);" (assignment_expression "puVar24 = (undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1)" identifier = (cast_expression "(undefined1 *)(**(code **)(pcVar50 + 0x3815c))(puVar36,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x3815c))(puVar36,1)" (parenthesized_expression "(**(code **)(pcVar50 + 0x3815c))" ( (pointer_expression "**(code **)(pcVar50 + 0x3815c)" * (pointer_expression "*(code **)(pcVar50 + 0x3815c)" * (cast_expression "(code **)(pcVar50 + 0x3815c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x3815c)" ( (binary_expression "pcVar50 + 0x3815c" identifier + number_literal) ))))) )) (argument_list "(puVar36,1)" ( identifier , number_literal ))))) ;) (expression_statement "puVar24[4] = 0;" (assignment_expression "puVar24[4] = 0" (subscript_expression "puVar24[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar24[5] = 0;" (assignment_expression "puVar24[5] = 0" (subscript_expression "puVar24[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar35 = *(uint *)(iVar39 + 0x429c);" (assignment_expression "uVar35 = *(uint *)(iVar39 + 0x429c)" identifier = (pointer_expression "*(uint *)(iVar39 + 0x429c)" * (cast_expression "(uint *)(iVar39 + 0x429c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + 0x429c)" ( (binary_expression "iVar39 + 0x429c" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = *(undefined1 *)(iVar39 + 0x42a0);" (assignment_expression "uVar10 = *(undefined1 *)(iVar39 + 0x42a0)" identifier = (pointer_expression "*(undefined1 *)(iVar39 + 0x42a0)" * (cast_expression "(undefined1 *)(iVar39 + 0x42a0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + 0x42a0)" ( (binary_expression "iVar39 + 0x42a0" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = *(undefined1 *)(iVar39 + 0x42a1);" (assignment_expression "uVar11 = *(undefined1 *)(iVar39 + 0x42a1)" identifier = (pointer_expression "*(undefined1 *)(iVar39 + 0x42a1)" * (cast_expression "(undefined1 *)(iVar39 + 0x42a1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + 0x42a1)" ( (binary_expression "iVar39 + 0x42a1" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(undefined1 *)(iVar39 + 0x42a2);" (assignment_expression "uVar12 = *(undefined1 *)(iVar39 + 0x42a2)" identifier = (pointer_expression "*(undefined1 *)(iVar39 + 0x42a2)" * (cast_expression "(undefined1 *)(iVar39 + 0x42a2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + 0x42a2)" ( (binary_expression "iVar39 + 0x42a2" identifier + number_literal) ))))) ;) (expression_statement "puVar24[3] = (char)ppsVar20;" (assignment_expression "puVar24[3] = (char)ppsVar20" (subscript_expression "puVar24[3]" identifier [ number_literal ]) = (cast_expression "(char)ppsVar20" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*puVar24 = (char)((uint)ppsVar20 >> 0x18);" (assignment_expression "*puVar24 = (char)((uint)ppsVar20 >> 0x18)" (pointer_expression "*puVar24" * identifier) = (cast_expression "(char)((uint)ppsVar20 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppsVar20 >> 0x18)" ( (binary_expression "(uint)ppsVar20 >> 0x18" (cast_expression "(uint)ppsVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar24[1] = (char)((uint)ppsVar20 >> 0x10);" (assignment_expression "puVar24[1] = (char)((uint)ppsVar20 >> 0x10)" (subscript_expression "puVar24[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)ppsVar20 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppsVar20 >> 0x10)" ( (binary_expression "(uint)ppsVar20 >> 0x10" (cast_expression "(uint)ppsVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar24[2] = (char)((uint)ppsVar20 >> 8);" (assignment_expression "puVar24[2] = (char)((uint)ppsVar20 >> 8)" (subscript_expression "puVar24[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)ppsVar20 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppsVar20 >> 8)" ( (binary_expression "(uint)ppsVar20 >> 8" (cast_expression "(uint)ppsVar20" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar24[7] = 7;" (assignment_expression "puVar24[7] = 7" (subscript_expression "puVar24[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar24[6] = 0;" (assignment_expression "puVar24[6] = 0" (subscript_expression "puVar24[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar25 = puVar24 + 8;" (assignment_expression "puVar25 = puVar24 + 8" identifier = (binary_expression "puVar24 + 8" identifier + number_literal)) ;) (expression_statement "uVar41 = (uint)puVar25 & 3;" (assignment_expression "uVar41 = (uint)puVar25 & 3" identifier = (binary_expression "(uint)puVar25 & 3" (cast_expression "(uint)puVar25" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8;" (assignment_expression "*(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8" (pointer_expression "*(uint *)(puVar25 + -uVar41)" * (cast_expression "(uint *)(puVar25 + -uVar41)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -uVar41)" ( (binary_expression "puVar25 + -uVar41" identifier + (unary_expression "-uVar41" - identifier)) )))) = (binary_expression "*(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8 | uVar35 >> uVar41 * 8" (binary_expression "*(uint *)(puVar25 + -uVar41) & -1 << (4 - uVar41) * 8" (pointer_expression "*(uint *)(puVar25 + -uVar41)" * (cast_expression "(uint *)(puVar25 + -uVar41)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -uVar41)" ( (binary_expression "puVar25 + -uVar41" identifier + (unary_expression "-uVar41" - identifier)) )))) & (binary_expression "-1 << (4 - uVar41) * 8" number_literal << (binary_expression "(4 - uVar41) * 8" (parenthesized_expression "(4 - uVar41)" ( (binary_expression "4 - uVar41" number_literal - identifier) )) * number_literal))) | (binary_expression "uVar35 >> uVar41 * 8" identifier >> (binary_expression "uVar41 * 8" identifier * number_literal)))) ;) (expression_statement "puVar25 = puVar24 + 0xb;" (assignment_expression "puVar25 = puVar24 + 0xb" identifier = (binary_expression "puVar24 + 0xb" identifier + number_literal)) ;) (expression_statement "uVar41 = (uint)puVar25 & 3;" (assignment_expression "uVar41 = (uint)puVar25 & 3" identifier = (binary_expression "(uint)puVar25 & 3" (cast_expression "(uint)puVar25" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8;" (assignment_expression "*(uint *)(puVar25 + -uVar41) =\n                       *(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8" (pointer_expression "*(uint *)(puVar25 + -uVar41)" * (cast_expression "(uint *)(puVar25 + -uVar41)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -uVar41)" ( (binary_expression "puVar25 + -uVar41" identifier + (unary_expression "-uVar41" - identifier)) )))) = (binary_expression "*(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8 |\n                       uVar35 << (3 - uVar41) * 8" (binary_expression "*(uint *)(puVar25 + -uVar41) & 0xffffffffU >> (uVar41 + 1) * 8" (pointer_expression "*(uint *)(puVar25 + -uVar41)" * (cast_expression "(uint *)(puVar25 + -uVar41)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + -uVar41)" ( (binary_expression "puVar25 + -uVar41" identifier + (unary_expression "-uVar41" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar41 + 1) * 8" number_literal >> (binary_expression "(uVar41 + 1) * 8" (parenthesized_expression "(uVar41 + 1)" ( (binary_expression "uVar41 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar35 << (3 - uVar41) * 8" identifier << (binary_expression "(3 - uVar41) * 8" (parenthesized_expression "(3 - uVar41)" ( (binary_expression "3 - uVar41" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar24[0xc] = uVar10;" (assignment_expression "puVar24[0xc] = uVar10" (subscript_expression "puVar24[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar24[0xd] = uVar11;" (assignment_expression "puVar24[0xd] = uVar11" (subscript_expression "puVar24[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar24[0xe] = uVar12;" (assignment_expression "puVar24[0xe] = uVar12" (subscript_expression "puVar24[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar24[0x10] = bVar13;" (assignment_expression "puVar24[0x10] = bVar13" (subscript_expression "puVar24[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar24[0x11] = (char)((uint)psVar43 >> 0x18);" (assignment_expression "puVar24[0x11] = (char)((uint)psVar43 >> 0x18)" (subscript_expression "puVar24[0x11]" identifier [ number_literal ]) = (cast_expression "(char)((uint)psVar43 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)psVar43 >> 0x18)" ( (binary_expression "(uint)psVar43 >> 0x18" (cast_expression "(uint)psVar43" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar24[0x12] = (char)((uint)psVar43 >> 0x10);" (assignment_expression "puVar24[0x12] = (char)((uint)psVar43 >> 0x10)" (subscript_expression "puVar24[0x12]" identifier [ number_literal ]) = (cast_expression "(char)((uint)psVar43 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)psVar43 >> 0x10)" ( (binary_expression "(uint)psVar43 >> 0x10" (cast_expression "(uint)psVar43" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar24[0x13] = (char)((uint)psVar43 >> 8);" (assignment_expression "puVar24[0x13] = (char)((uint)psVar43 >> 8)" (subscript_expression "puVar24[0x13]" identifier [ number_literal ]) = (cast_expression "(char)((uint)psVar43 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)psVar43 >> 8)" ( (binary_expression "(uint)psVar43 >> 8" (cast_expression "(uint)psVar43" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar24[0x14] = (char)psVar43;" (assignment_expression "puVar24[0x14] = (char)psVar43" (subscript_expression "puVar24[0x14]" identifier [ number_literal ]) = (cast_expression "(char)psVar43" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pcVar52 = *(code **)(pcVar50 + 0x38c14);" (assignment_expression "pcVar52 = *(code **)(pcVar50 + 0x38c14)" identifier = (pointer_expression "*(code **)(pcVar50 + 0x38c14)" * (cast_expression "(code **)(pcVar50 + 0x38c14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38c14)" ( (binary_expression "pcVar50 + 0x38c14" identifier + number_literal) ))))) ;) (expression_statement "puVar24[0xf] = uVar32 != '\0';" (assignment_expression "puVar24[0xf] = uVar32 != '\0'" (subscript_expression "puVar24[0xf]" identifier [ number_literal ]) = (binary_expression "uVar32 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "(*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43);" (call_expression "(*pcVar52)(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43)" (parenthesized_expression "(*pcVar52)" ( (pointer_expression "*pcVar52" * identifier) )) (argument_list "(puVar24 + 0x15,*(undefined4 *)(psStack_108->sent_verstring + 0xc),\n                             psVar43)" ( (binary_expression "puVar24 + 0x15" identifier + number_literal) , (pointer_expression "*(undefined4 *)(psStack_108->sent_verstring + 0xc)" * (cast_expression "(undefined4 *)(psStack_108->sent_verstring + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psStack_108->sent_verstring + 0xc)" ( (binary_expression "psStack_108->sent_verstring + 0xc" (field_expression "psStack_108->sent_verstring" identifier -> field_identifier) + number_literal) )))) , identifier ))) ;) (expression_statement "puVar25 = puVar24 + (int)psVar43;" (assignment_expression "puVar25 = puVar24 + (int)psVar43" identifier = (binary_expression "puVar24 + (int)psVar43" identifier + (cast_expression "(int)psVar43" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar25[0x15] = (char)((uint)psVar46 >> 0x18);" (assignment_expression "puVar25[0x15] = (char)((uint)psVar46 >> 0x18)" (subscript_expression "puVar25[0x15]" identifier [ number_literal ]) = (cast_expression "(char)((uint)psVar46 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)psVar46 >> 0x18)" ( (binary_expression "(uint)psVar46 >> 0x18" (cast_expression "(uint)psVar46" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar25[0x16] = (char)((uint)psVar46 >> 0x10);" (assignment_expression "puVar25[0x16] = (char)((uint)psVar46 >> 0x10)" (subscript_expression "puVar25[0x16]" identifier [ number_literal ]) = (cast_expression "(char)((uint)psVar46 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)psVar46 >> 0x10)" ( (binary_expression "(uint)psVar46 >> 0x10" (cast_expression "(uint)psVar46" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar25[0x17] = (char)((uint)psVar46 >> 8);" (assignment_expression "puVar25[0x17] = (char)((uint)psVar46 >> 8)" (subscript_expression "puVar25[0x17]" identifier [ number_literal ]) = (cast_expression "(char)((uint)psVar46 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)psVar46 >> 8)" ( (binary_expression "(uint)psVar46 >> 8" (cast_expression "(uint)psVar46" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar25[0x18] = (char)psVar46;" (assignment_expression "puVar25[0x18] = (char)psVar46" (subscript_expression "puVar25[0x18]" identifier [ number_literal ]) = (cast_expression "(char)psVar46" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46);" (call_expression "(**(code **)(pcVar50 + 0x38c14))\n                            (puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38c14))" ( (pointer_expression "**(code **)(pcVar50 + 0x38c14)" * (pointer_expression "*(code **)(pcVar50 + 0x38c14)" * (cast_expression "(code **)(pcVar50 + 0x38c14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38c14)" ( (binary_expression "pcVar50 + 0x38c14" identifier + number_literal) ))))) )) (argument_list "(puVar24 + (int)((int)&psVar43->got_verstring + 1),\n                             *(undefined4 *)(psStack_108->sent_verstring + 0x10),psVar46)" ( (binary_expression "puVar24 + (int)((int)&psVar43->got_verstring + 1)" identifier + (cast_expression "(int)((int)&psVar43->got_verstring + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&psVar43->got_verstring + 1)" ( (binary_expression "(int)&psVar43->got_verstring + 1" (cast_expression "(int)&psVar43->got_verstring" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar43->got_verstring" & (field_expression "psVar43->got_verstring" identifier -> field_identifier))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(psStack_108->sent_verstring + 0x10)" * (cast_expression "(undefined4 *)(psStack_108->sent_verstring + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(psStack_108->sent_verstring + 0x10)" ( (binary_expression "psStack_108->sent_verstring + 0x10" (field_expression "psStack_108->sent_verstring" identifier -> field_identifier) + number_literal) )))) , identifier ))) ;) (expression_statement "puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40));" (assignment_expression "puVar25 = puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40))" identifier = (binary_expression "puVar24 + (int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40))" identifier + (cast_expression "(int)(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40))" ( (binary_expression "psVar46->recvbuf + (int)(psVar43->recvbuf + -0x40)" (field_expression "psVar46->recvbuf" identifier -> field_identifier) + (cast_expression "(int)(psVar43->recvbuf + -0x40)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(psVar43->recvbuf + -0x40)" ( (binary_expression "psVar43->recvbuf + -0x40" (field_expression "psVar43->recvbuf" identifier -> field_identifier) + number_literal) )))) ))))) ;) (expression_statement "puVar25[0x1c] = uVar8;" (assignment_expression "puVar25[0x1c] = uVar8" (subscript_expression "puVar25[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[0x19] = uVar7;" (assignment_expression "puVar25[0x19] = uVar7" (subscript_expression "puVar25[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[0x1a] = uVar6;" (assignment_expression "puVar25[0x1a] = uVar6" (subscript_expression "puVar25[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar25[0x1b] = uVar9;" (assignment_expression "puVar25[0x1b] = uVar9" (subscript_expression "puVar25[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0);" (call_expression "(**(code **)(pcVar50 + 0x388fc))\n                            (cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0)" (parenthesized_expression "(**(code **)(pcVar50 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar50 + 0x388fc)" * (pointer_expression "*(code **)(pcVar50 + 0x388fc)" * (cast_expression "(code **)(pcVar50 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x388fc)" ( (binary_expression "pcVar50 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,cs_00->id,0x62,puVar24,puVar36,0)" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) , (field_expression "cs_00->id" identifier -> field_identifier) , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(**(code **)(pcVar50 + 0x38124))(puVar24);" (call_expression "(**(code **)(pcVar50 + 0x38124))(puVar24)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38124))" ( (pointer_expression "**(code **)(pcVar50 + 0x38124)" * (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(puVar24)" ( identifier ))) ;) (expression_statement "cs_00->recvlen = 0;" (assignment_expression "cs_00->recvlen = 0" (field_expression "cs_00->recvlen" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (goto_statement "goto LAB_00078f28;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00078df8:\n            (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0);" statement_identifier : (expression_statement "(**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0);" (call_expression "(**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0)" (parenthesized_expression "(**(code **)(pcVar50 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar50 + 0x388fc)" * (pointer_expression "*(code **)(pcVar50 + 0x388fc)" * (cast_expression "(code **)(pcVar50 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x388fc)" ( (binary_expression "pcVar50 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,cs_00->id,bVar1,puVar36,puVar25,0)" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) , (field_expression "cs_00->id" identifier -> field_identifier) , identifier , identifier , identifier , number_literal ))) ;)) (if_statement "if ((bVar1 == 0x61) && (3 < (int)puVar25)) {\n              ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar26 != (share_channel *)0x0) {\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }" if (parenthesized_expression "((bVar1 == 0x61) && (3 < (int)puVar25))" ( (binary_expression "(bVar1 == 0x61) && (3 < (int)puVar25)" (parenthesized_expression "(bVar1 == 0x61)" ( (binary_expression "bVar1 == 0x61" identifier == number_literal) )) && (parenthesized_expression "(3 < (int)puVar25)" ( (binary_expression "3 < (int)puVar25" number_literal < (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n              ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);\n              psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar26 != (share_channel *)0x0) {\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }" { (expression_statement "ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5);" (assignment_expression "ppsStack_e0 = *(Socket *)(cs_00->recvbuf + 5)" identifier = (pointer_expression "*(Socket *)(cs_00->recvbuf + 5)" * (cast_expression "(Socket *)(cs_00->recvbuf + 5)" ( (type_descriptor "Socket *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cs_00->recvbuf + 5)" ( (binary_expression "cs_00->recvbuf + 5" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0);" (assignment_expression "psVar26 = (share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0)" identifier = (cast_expression "(share_channel *)\n                        find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0)" ( (type_descriptor "share_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "find234(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0)" identifier (argument_list "(cs_00->channels_by_server,&psStack_e8,(cmpfn234)0x0)" ( (field_expression "cs_00->channels_by_server" identifier -> field_identifier) , (pointer_expression "&psStack_e8" & identifier) , (cast_expression "(cmpfn234)0x0" ( (type_descriptor "cmpfn234" type_identifier) ) number_literal) ))))) ;) (if_statement "if (psVar26 != (share_channel *)0x0) {\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }" if (parenthesized_expression "(psVar26 != (share_channel *)0x0)" ( (binary_expression "psVar26 != (share_channel *)0x0" identifier != (cast_expression "(share_channel *)0x0" ( (type_descriptor "share_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }" { (if_statement "if (psVar26->state == 2) {\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }" if (parenthesized_expression "(psVar26->state == 2)" ( (binary_expression "psVar26->state == 2" (field_expression "psVar26->state" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n                  (**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);\n                  share_remove_channel(cs_00,psVar26);\n                  cs_00->recvlen = 0;\n                }" { (expression_statement "(**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id);" (call_expression "(**(code **)(pcVar50 + 0x38900))(cs_00->parent->ssh,psVar26->upstream_id)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38900))" ( (pointer_expression "**(code **)(pcVar50 + 0x38900)" * (pointer_expression "*(code **)(pcVar50 + 0x38900)" * (cast_expression "(code **)(pcVar50 + 0x38900)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38900)" ( (binary_expression "pcVar50 + 0x38900" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,psVar26->upstream_id)" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) , (field_expression "psVar26->upstream_id" identifier -> field_identifier) ))) ;) (expression_statement "share_remove_channel(cs_00,psVar26);" (call_expression "share_remove_channel(cs_00,psVar26)" identifier (argument_list "(cs_00,psVar26)" ( identifier , identifier ))) ;) (expression_statement "cs_00->recvlen = 0;" (assignment_expression "cs_00->recvlen = 0" (field_expression "cs_00->recvlen" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }" else (compound_statement "{\n                  psVar26->state = 1;\n                  cs_00->recvlen = 0;\n                }" { (expression_statement "psVar26->state = 1;" (assignment_expression "psVar26->state = 1" (field_expression "psVar26->state" identifier -> field_identifier) = number_literal) ;) (expression_statement "cs_00->recvlen = 0;" (assignment_expression "cs_00->recvlen = 0" (field_expression "cs_00->recvlen" identifier -> field_identifier) = number_literal) ;) }))) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) })) }) (else_clause "else {\n            if (bVar1 == 0x5c) {\n              if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar1) {\n              if (100 < bVar1) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)puVar25 < 0x10) {\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar41 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar35 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar43 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8);\n            psStack_e8 = psVar43;\n            pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0);\n            if (pvVar23 == (void *)0x0) {\n              psStack_e4 = psVar43;\n              psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;\n              ppVar16 = psVar46->fn;\n            }\n            else {\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)ppVar16;\n            cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8);\n            uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8));\n            if (pvVar23 != (void *)0x0) {\n              psVar19 = cs_00->parent;\n              uVar38 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (psVar46 != (ssh_sharing_connstate *)0x0) {\n              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\n          }" else (compound_statement "{\n            if (bVar1 == 0x5c) {\n              if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar1) {\n              if (100 < bVar1) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)puVar25 < 0x10) {\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar41 = (uint)(cs_00->recvbuf + 5) & 3;\n            upstream_id = *(uint *)(cs_00->recvbuf + 9);\n            uVar35 = (uint)(cs_00->recvbuf + 8) & 3;\n            psVar43 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8);\n            psStack_e8 = psVar43;\n            pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0);\n            if (pvVar23 == (void *)0x0) {\n              psStack_e4 = psVar43;\n              psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;\n              ppVar16 = psVar46->fn;\n            }\n            else {\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }\n            cs_00->recvbuf[0xc] = (uchar)ppVar16;\n            cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18);\n            cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10);\n            cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8);\n            uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3;\n            uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3;\n            psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8));\n            if (pvVar23 != (void *)0x0) {\n              psVar19 = cs_00->parent;\n              uVar38 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (psVar46 != (ssh_sharing_connstate *)0x0) {\n              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }\n          }" { (if_statement "if (bVar1 == 0x5c) {\n              if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }" if (parenthesized_expression "(bVar1 == 0x5c)" ( (binary_expression "bVar1 == 0x5c" identifier == number_literal) )) (compound_statement "{\n              if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }" { (if_statement "if (3 < (int)puVar25) {\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }" if (parenthesized_expression "(3 < (int)puVar25)" ( (binary_expression "3 < (int)puVar25" number_literal < (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);\n                psVar46 = (ssh_sharing_connstate *)&psStack_e8;\n                psStack_e8 = psVar43;\n                pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);\n                if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }\n                goto LAB_000784dc;\n              }" { (expression_statement "psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5);" (assignment_expression "psVar43 = *(ssh_sharing_connstate **)(cs_00->recvbuf + 5)" identifier = (pointer_expression "*(ssh_sharing_connstate **)(cs_00->recvbuf + 5)" * (cast_expression "(ssh_sharing_connstate **)(cs_00->recvbuf + 5)" ( (type_descriptor "ssh_sharing_connstate **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(cs_00->recvbuf + 5)" ( (binary_expression "cs_00->recvbuf + 5" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "psVar46 = (ssh_sharing_connstate *)&psStack_e8;" (assignment_expression "psVar46 = (ssh_sharing_connstate *)&psStack_e8" identifier = (cast_expression "(ssh_sharing_connstate *)&psStack_e8" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_e8" & identifier))) ;) (expression_statement "psStack_e8 = psVar43;" (assignment_expression "psStack_e8 = psVar43" identifier = identifier) ;) (expression_statement "pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0);" (assignment_expression "pvVar23 = find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0)" identifier = (call_expression "find234(cs_00->halfchannels,psVar46,(cmpfn234)0x0)" identifier (argument_list "(cs_00->halfchannels,psVar46,(cmpfn234)0x0)" ( (field_expression "cs_00->halfchannels" identifier -> field_identifier) , identifier , (cast_expression "(cmpfn234)0x0" ( (type_descriptor "cmpfn234" type_identifier) ) number_literal) )))) ;) (if_statement "if (pvVar23 == (void *)0x0) {\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }\n                else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }" if (parenthesized_expression "(pvVar23 == (void *)0x0)" ( (binary_expression "pvVar23 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  psStack_e4 = psVar43;\n                  psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);\n                  if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(cs_00,psVar33);\n                  cs_00->recvlen = 0;\n                }" { (expression_statement "psStack_e4 = psVar43;" (assignment_expression "psStack_e4 = psVar43" identifier = identifier) ;) (expression_statement "psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0);" (assignment_expression "psVar33 = (share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0)" identifier = (cast_expression "(share_xchannel *)\n                            find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0)" ( (type_descriptor "share_xchannel *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "find234(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0)" identifier (argument_list "(cs_00->xchannels_by_server,psVar46,(cmpfn234)0x0)" ( (field_expression "cs_00->xchannels_by_server" identifier -> field_identifier) , identifier , (cast_expression "(cmpfn234)0x0" ( (type_descriptor "cmpfn234" type_identifier) ) number_literal) ))))) ;) (if_statement "if (psVar33 == (share_xchannel *)0x0) {\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }" if (parenthesized_expression "(psVar33 == (share_xchannel *)0x0)" ( (binary_expression "psVar33 == (share_xchannel *)0x0" identifier == (cast_expression "(share_xchannel *)0x0" ( (type_descriptor "share_xchannel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);\n                    goto LAB_000787a4;\n                  }" { (expression_statement "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43);" (assignment_expression "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43)" identifier = (cast_expression "(char *)(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x38158))\n                                                (*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38158))" ( (pointer_expression "**(code **)(pcVar50 + 0x38158)" * (pointer_expression "*(code **)(pcVar50 + 0x38158)" * (cast_expression "(code **)(pcVar50 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38158)" ( (binary_expression "pcVar50 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar50 + 0x38144) + -0x4020,psVar43)" ( (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x4020" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier ))))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "share_xchannel_failure(cs_00,psVar33);" (call_expression "share_xchannel_failure(cs_00,psVar33)" identifier (argument_list "(cs_00,psVar33)" ( identifier , identifier ))) ;) (expression_statement "cs_00->recvlen = 0;" (assignment_expression "cs_00->recvlen = 0" (field_expression "cs_00->recvlen" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }" else (compound_statement "{\n                  psVar19 = cs_00->parent;\n                  uVar38 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);\n                  del234(cs_00->halfchannels,pvVar23);\n                  (**(code **)(pcVar50 + 0x38124))(pvVar23);\n                  cs_00->recvlen = 0;\n                }" { (expression_statement "psVar19 = cs_00->parent;" (assignment_expression "psVar19 = cs_00->parent" identifier = (field_expression "cs_00->parent" identifier -> field_identifier)) ;) (expression_statement "uVar38 = 0x5c;" (assignment_expression "uVar38 = 0x5c" identifier = number_literal) ;) (labeled_statement "LAB_000786e4:\n                  (**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);" statement_identifier : (expression_statement "(**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0);" (call_expression "(**(code **)(pcVar50 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0)" (parenthesized_expression "(**(code **)(pcVar50 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar50 + 0x388fc)" * (pointer_expression "*(code **)(pcVar50 + 0x388fc)" * (cast_expression "(code **)(pcVar50 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x388fc)" ( (binary_expression "pcVar50 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(psVar19->ssh,cs_00->id,uVar38,puVar36,puVar25,0)" ( (field_expression "psVar19->ssh" identifier -> field_identifier) , (field_expression "cs_00->id" identifier -> field_identifier) , identifier , identifier , identifier , number_literal ))) ;)) (expression_statement "del234(cs_00->halfchannels,pvVar23);" (call_expression "del234(cs_00->halfchannels,pvVar23)" identifier (argument_list "(cs_00->halfchannels,pvVar23)" ( (field_expression "cs_00->halfchannels" identifier -> field_identifier) , identifier ))) ;) (expression_statement "(**(code **)(pcVar50 + 0x38124))(pvVar23);" (call_expression "(**(code **)(pcVar50 + 0x38124))(pvVar23)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38124))" ( (pointer_expression "**(code **)(pcVar50 + 0x38124)" * (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(pvVar23)" ( identifier ))) ;) (expression_statement "cs_00->recvlen = 0;" (assignment_expression "cs_00->recvlen = 0" (field_expression "cs_00->recvlen" identifier -> field_identifier) = number_literal) ;) }))) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (expression_statement "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048);" (assignment_expression "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048)" identifier = (cast_expression "(char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x4048)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38158))" ( (pointer_expression "**(code **)(pcVar50 + 0x38158)" * (pointer_expression "*(code **)(pcVar50 + 0x38158)" * (cast_expression "(code **)(pcVar50 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38158)" ( (binary_expression "pcVar50 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar50 + 0x38144) + -0x4048)" ( (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x4048" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (if_statement "if (0x5b < bVar1) {\n              if (100 < bVar1) goto LAB_0007878c;\n              goto LAB_00078844;\n            }" if (parenthesized_expression "(0x5b < bVar1)" ( (binary_expression "0x5b < bVar1" number_literal < identifier) )) (compound_statement "{\n              if (100 < bVar1) goto LAB_0007878c;\n              goto LAB_00078844;\n            }" { (if_statement "if (100 < bVar1) goto LAB_0007878c;" if (parenthesized_expression "(100 < bVar1)" ( (binary_expression "100 < bVar1" number_literal < identifier) )) (goto_statement "goto LAB_0007878c;" goto statement_identifier ;)) (goto_statement "goto LAB_00078844;" goto statement_identifier ;) })) (if_statement "if ((int)puVar25 < 0x10) {\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }" if (parenthesized_expression "((int)puVar25 < 0x10)" ( (binary_expression "(int)puVar25 < 0x10" (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }" { (expression_statement "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4);" (assignment_expression "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4)" identifier = (cast_expression "(char *)(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x38158))\n                                          (*(int *)(pcVar50 + 0x38144) + -0x40f4)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38158))" ( (pointer_expression "**(code **)(pcVar50 + 0x38158)" * (pointer_expression "*(code **)(pcVar50 + 0x38158)" * (cast_expression "(code **)(pcVar50 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38158)" ( (binary_expression "pcVar50 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar50 + 0x38144) + -0x40f4)" ( (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x40f4" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "uVar41 = (uint)(cs_00->recvbuf + 5) & 3;" (assignment_expression "uVar41 = (uint)(cs_00->recvbuf + 5) & 3" identifier = (binary_expression "(uint)(cs_00->recvbuf + 5) & 3" (call_expression "(uint)(cs_00->recvbuf + 5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cs_00->recvbuf + 5)" ( (binary_expression "cs_00->recvbuf + 5" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) ))) & number_literal)) ;) (expression_statement "upstream_id = *(uint *)(cs_00->recvbuf + 9);" (assignment_expression "upstream_id = *(uint *)(cs_00->recvbuf + 9)" identifier = (pointer_expression "*(uint *)(cs_00->recvbuf + 9)" * (cast_expression "(uint *)(cs_00->recvbuf + 9)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cs_00->recvbuf + 9)" ( (binary_expression "cs_00->recvbuf + 9" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "uVar35 = (uint)(cs_00->recvbuf + 8) & 3;" (assignment_expression "uVar35 = (uint)(cs_00->recvbuf + 8) & 3" identifier = (binary_expression "(uint)(cs_00->recvbuf + 8) & 3" (call_expression "(uint)(cs_00->recvbuf + 8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cs_00->recvbuf + 8)" ( (binary_expression "cs_00->recvbuf + 8" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) ))) & number_literal)) ;) (expression_statement "psVar43 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8);" (assignment_expression "psVar43 = (ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8)" identifier = (cast_expression "(ssh_sharing_connstate *)\n                      ((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8)" ( (binary_expression "(*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8 |\n                      *(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8" (binary_expression "(*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8) & -1 << (uVar35 + 1) * 8" (parenthesized_expression "(*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8)" ( (binary_expression "*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8 |\n                       (uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8" (binary_expression "*(int *)(cs_00->recvbuf + 5 + -uVar41) << uVar41 * 8" (pointer_expression "*(int *)(cs_00->recvbuf + 5 + -uVar41)" * (cast_expression "(int *)(cs_00->recvbuf + 5 + -uVar41)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cs_00->recvbuf + 5 + -uVar41)" ( (binary_expression "cs_00->recvbuf + 5 + -uVar41" (binary_expression "cs_00->recvbuf + 5" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) + (unary_expression "-uVar41" - identifier)) )))) << (binary_expression "uVar41 * 8" identifier * number_literal)) | (binary_expression "(uint)psVar43 & 0xffffffffU >> (4 - uVar41) * 8" (cast_expression "(uint)psVar43" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "0xffffffffU >> (4 - uVar41) * 8" number_literal >> (binary_expression "(4 - uVar41) * 8" (parenthesized_expression "(4 - uVar41)" ( (binary_expression "4 - uVar41" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar35 + 1) * 8" number_literal << (binary_expression "(uVar35 + 1) * 8" (parenthesized_expression "(uVar35 + 1)" ( (binary_expression "uVar35 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)(cs_00->recvbuf + 8 + -uVar35) >> (3 - uVar35) * 8" (pointer_expression "*(uint *)(cs_00->recvbuf + 8 + -uVar35)" * (cast_expression "(uint *)(cs_00->recvbuf + 8 + -uVar35)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cs_00->recvbuf + 8 + -uVar35)" ( (binary_expression "cs_00->recvbuf + 8 + -uVar35" (binary_expression "cs_00->recvbuf + 8" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) + (unary_expression "-uVar35" - identifier)) )))) >> (binary_expression "(3 - uVar35) * 8" (parenthesized_expression "(3 - uVar35)" ( (binary_expression "3 - uVar35" number_literal - identifier) )) * number_literal))) )))) ;) (expression_statement "psStack_e8 = psVar43;" (assignment_expression "psStack_e8 = psVar43" identifier = identifier) ;) (expression_statement "pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0);" (assignment_expression "pvVar23 = find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0)" identifier = (call_expression "find234(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0)" identifier (argument_list "(cs_00->halfchannels,&psStack_e8,(cmpfn234)0x0)" ( (field_expression "cs_00->halfchannels" identifier -> field_identifier) , (pointer_expression "&psStack_e8" & identifier) , (cast_expression "(cmpfn234)0x0" ( (type_descriptor "cmpfn234" type_identifier) ) number_literal) )))) ;) (if_statement "if (pvVar23 == (void *)0x0) {\n              psStack_e4 = psVar43;\n              psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;\n              ppVar16 = psVar46->fn;\n            }\n            else {\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }" if (parenthesized_expression "(pvVar23 == (void *)0x0)" ( (binary_expression "pvVar23 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              psStack_e4 = psVar43;\n              psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);\n              if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;\n              ppVar16 = psVar46->fn;\n            }" { (expression_statement "psStack_e4 = psVar43;" (assignment_expression "psStack_e4 = psVar43" identifier = identifier) ;) (expression_statement "psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0);" (assignment_expression "psVar46 = (ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0)" identifier = (cast_expression "(ssh_sharing_connstate *)\n                        find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "find234(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0)" identifier (argument_list "(cs_00->xchannels_by_server,&psStack_e8,(cmpfn234)0x0)" ( (field_expression "cs_00->xchannels_by_server" identifier -> field_identifier) , (pointer_expression "&psStack_e8" & identifier) , (cast_expression "(cmpfn234)0x0" ( (type_descriptor "cmpfn234" type_identifier) ) number_literal) ))))) ;) (if_statement "if (psVar46 == (ssh_sharing_connstate *)0x0) goto LAB_0007927c;" if (parenthesized_expression "(psVar46 == (ssh_sharing_connstate *)0x0)" ( (binary_expression "psVar46 == (ssh_sharing_connstate *)0x0" identifier == (cast_expression "(ssh_sharing_connstate *)0x0" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007927c;" goto statement_identifier ;)) (expression_statement "ppVar16 = psVar46->fn;" (assignment_expression "ppVar16 = psVar46->fn" identifier = (field_expression "psVar46->fn" identifier -> field_identifier)) ;) }) (else_clause "else {\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }" else (compound_statement "{\n              psVar46 = (ssh_sharing_connstate *)0x0;\n              ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n            }" { (expression_statement "psVar46 = (ssh_sharing_connstate *)0x0;" (assignment_expression "psVar46 = (ssh_sharing_connstate *)0x0" identifier = (cast_expression "(ssh_sharing_connstate *)0x0" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);" (assignment_expression "ppVar16 = (plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00)" identifier = (cast_expression "(plug_function_table *)\n                        (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00)" ( (type_descriptor "plug_function_table *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38914))" ( (pointer_expression "**(code **)(pcVar50 + 0x38914)" * (pointer_expression "*(code **)(pcVar50 + 0x38914)" * (cast_expression "(code **)(pcVar50 + 0x38914)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38914)" ( (binary_expression "pcVar50 + 0x38914" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,cs_00)" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) , identifier ))))) ;) }))) (expression_statement "cs_00->recvbuf[0xc] = (uchar)ppVar16;" (assignment_expression "cs_00->recvbuf[0xc] = (uchar)ppVar16" (subscript_expression "cs_00->recvbuf[0xc]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(uchar)ppVar16" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18);" (assignment_expression "cs_00->recvbuf[9] = (uchar)((uint)ppVar16 >> 0x18)" (subscript_expression "cs_00->recvbuf[9]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ number_literal ]) = (call_expression "(uchar)((uint)ppVar16 >> 0x18)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)ppVar16 >> 0x18)" ( (binary_expression "(uint)ppVar16 >> 0x18" (cast_expression "(uint)ppVar16" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10);" (assignment_expression "cs_00->recvbuf[10] = (uchar)((uint)ppVar16 >> 0x10)" (subscript_expression "cs_00->recvbuf[10]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ number_literal ]) = (call_expression "(uchar)((uint)ppVar16 >> 0x10)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)ppVar16 >> 0x10)" ( (binary_expression "(uint)ppVar16 >> 0x10" (cast_expression "(uint)ppVar16" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8);" (assignment_expression "cs_00->recvbuf[0xb] = (uchar)((uint)ppVar16 >> 8)" (subscript_expression "cs_00->recvbuf[0xb]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ number_literal ]) = (call_expression "(uchar)((uint)ppVar16 >> 8)" (parenthesized_expression "(uchar)" ( identifier )) (argument_list "((uint)ppVar16 >> 8)" ( (binary_expression "(uint)ppVar16 >> 8" (cast_expression "(uint)ppVar16" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3;" (assignment_expression "uVar41 = (uint)(cs_00->recvbuf + 0x11) & 3" identifier = (binary_expression "(uint)(cs_00->recvbuf + 0x11) & 3" (call_expression "(uint)(cs_00->recvbuf + 0x11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cs_00->recvbuf + 0x11)" ( (binary_expression "cs_00->recvbuf + 0x11" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) ))) & number_literal)) ;) (expression_statement "uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3;" (assignment_expression "uVar35 = (uint)(cs_00->recvbuf + 0x14) & 3" identifier = (binary_expression "(uint)(cs_00->recvbuf + 0x14) & 3" (call_expression "(uint)(cs_00->recvbuf + 0x14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cs_00->recvbuf + 0x14)" ( (binary_expression "cs_00->recvbuf + 0x14" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) ))) & number_literal)) ;) (expression_statement "psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8));" (assignment_expression "psVar26 = share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8))" identifier = (call_expression "share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8))" identifier (argument_list "((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                                        (uint)&cs_00->channels_by_server,upstream_id,(uint)ppVar16,\n                                        (int)psVar43,0,\n                                        (ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8))" ( (cast_expression "(ssh_sharing_connstate *)&cs_00->channels_by_us" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cs_00->channels_by_us" & (field_expression "cs_00->channels_by_us" identifier -> field_identifier))) , (binary_expression "(uint)&cs_00->channels_by_server" (parenthesized_expression "(uint)" ( identifier )) & (field_expression "cs_00->channels_by_server" identifier -> field_identifier)) , identifier , (cast_expression "(uint)ppVar16" ( (type_descriptor "uint" type_identifier) ) identifier) , (cast_expression "(int)psVar43" ( (type_descriptor "int" primitive_type) ) identifier) , number_literal , (cast_expression "(ssh_sharing_connstate *)\n                                        ((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8)" ( (binary_expression "(*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8 |\n                                        *(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8" (binary_expression "(*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8) &\n                                         -1 << (uVar35 + 1) * 8" (parenthesized_expression "(*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8)" ( (binary_expression "*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8 |\n                                         in_t3 & 0xffffffffU >> (4 - uVar41) * 8" (binary_expression "*(int *)(cs_00->recvbuf + 0x11 + -uVar41) << uVar41 * 8" (pointer_expression "*(int *)(cs_00->recvbuf + 0x11 + -uVar41)" * (cast_expression "(int *)(cs_00->recvbuf + 0x11 + -uVar41)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cs_00->recvbuf + 0x11 + -uVar41)" ( (binary_expression "cs_00->recvbuf + 0x11 + -uVar41" (binary_expression "cs_00->recvbuf + 0x11" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) + (unary_expression "-uVar41" - identifier)) )))) << (binary_expression "uVar41 * 8" identifier * number_literal)) | (binary_expression "in_t3 & 0xffffffffU >> (4 - uVar41) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar41) * 8" number_literal >> (binary_expression "(4 - uVar41) * 8" (parenthesized_expression "(4 - uVar41)" ( (binary_expression "4 - uVar41" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar35 + 1) * 8" number_literal << (binary_expression "(uVar35 + 1) * 8" (parenthesized_expression "(uVar35 + 1)" ( (binary_expression "uVar35 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)(cs_00->recvbuf + 0x14 + -uVar35) >>\n                                        (3 - uVar35) * 8" (pointer_expression "*(uint *)(cs_00->recvbuf + 0x14 + -uVar35)" * (cast_expression "(uint *)(cs_00->recvbuf + 0x14 + -uVar35)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cs_00->recvbuf + 0x14 + -uVar35)" ( (binary_expression "cs_00->recvbuf + 0x14 + -uVar35" (binary_expression "cs_00->recvbuf + 0x14" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) + (unary_expression "-uVar35" - identifier)) )))) >> (binary_expression "(3 - uVar35) * 8" (parenthesized_expression "(3 - uVar35)" ( (binary_expression "3 - uVar35" number_literal - identifier) )) * number_literal))) ))) )))) ;) (if_statement "if (pvVar23 != (void *)0x0) {\n              psVar19 = cs_00->parent;\n              uVar38 = 0x5b;\n              goto LAB_000786e4;\n            }" if (parenthesized_expression "(pvVar23 != (void *)0x0)" ( (binary_expression "pvVar23 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              psVar19 = cs_00->parent;\n              uVar38 = 0x5b;\n              goto LAB_000786e4;\n            }" { (expression_statement "psVar19 = cs_00->parent;" (assignment_expression "psVar19 = cs_00->parent" identifier = (field_expression "cs_00->parent" identifier -> field_identifier)) ;) (expression_statement "uVar38 = 0x5b;" (assignment_expression "uVar38 = 0x5b" identifier = number_literal) ;) (goto_statement "goto LAB_000786e4;" goto statement_identifier ;) })) (if_statement "if (psVar46 != (ssh_sharing_connstate *)0x0) {\n              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }" if (parenthesized_expression "(psVar46 != (ssh_sharing_connstate *)0x0)" ( (binary_expression "psVar46 != (ssh_sharing_connstate *)0x0" identifier != (cast_expression "(ssh_sharing_connstate *)0x0" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar41 = *(uint *)(cs_00->recvbuf + 0xd);\n              if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);\n              share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);\n              cs_00->recvlen = 0;\n              goto LAB_000784dc;\n            }" { (expression_statement "uVar41 = *(uint *)(cs_00->recvbuf + 0xd);" (assignment_expression "uVar41 = *(uint *)(cs_00->recvbuf + 0xd)" identifier = (pointer_expression "*(uint *)(cs_00->recvbuf + 0xd)" * (cast_expression "(uint *)(cs_00->recvbuf + 0xd)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(cs_00->recvbuf + 0xd)" ( (binary_expression "cs_00->recvbuf + 0xd" (field_expression "cs_00->recvbuf" identifier -> field_identifier) + number_literal) ))))) ;) (if_statement "if (uVar41 < 0x100) {\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }" if (parenthesized_expression "(uVar41 < 0x100)" ( (binary_expression "uVar41 < 0x100" identifier < number_literal) )) (compound_statement "{\n                pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);\n                goto LAB_000787a4;\n              }" { (expression_statement "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41);" (assignment_expression "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41)" identifier = (cast_expression "(char *)(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x38158))\n                                            (*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38158))" ( (pointer_expression "**(code **)(pcVar50 + 0x38158)" * (pointer_expression "*(code **)(pcVar50 + 0x38158)" * (cast_expression "(code **)(pcVar50 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38158)" ( (binary_expression "pcVar50 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar50 + 0x38144) + -0x408c,uVar41)" ( (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x408c" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier ))))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41);" (call_expression "share_xchannel_confirmation(cs_00,(share_xchannel *)psVar46,psVar26,uVar41)" identifier (argument_list "(cs_00,(share_xchannel *)psVar46,psVar26,uVar41)" ( identifier , (cast_expression "(share_xchannel *)psVar46" ( (type_descriptor "share_xchannel *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))) ;) (expression_statement "share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46);" (call_expression "share_remove_xchannel\n                        ((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46)" identifier (argument_list "((ssh_sharing_connstate *)cs_00->xchannels_by_us,\n                         (share_xchannel *)&cs_00->xchannels_by_server,psVar46)" ( (cast_expression "(ssh_sharing_connstate *)cs_00->xchannels_by_us" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cs_00->xchannels_by_us" identifier -> field_identifier)) , (cast_expression "(share_xchannel *)&cs_00->xchannels_by_server" ( (type_descriptor "share_xchannel *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cs_00->xchannels_by_server" & (field_expression "cs_00->xchannels_by_server" identifier -> field_identifier))) , identifier ))) ;) (expression_statement "cs_00->recvlen = 0;" (assignment_expression "cs_00->recvlen = 0" (field_expression "cs_00->recvlen" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000784d4:\n          cs_00->recvlen = 0;" statement_identifier : (expression_statement "cs_00->recvlen = 0;" (assignment_expression "cs_00->recvlen = 0" (field_expression "cs_00->recvlen" identifier -> field_identifier) = number_literal) ;)) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (expression_statement "iVar39 = *(int *)(pcVar50 + 0x38144);" (assignment_expression "iVar39 = *(int *)(pcVar50 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) ))))) ;) (if_statement "if (3 < (int)puVar25) {\n          iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n          if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n             (psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),\n             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8)) {\n            iVar39 = *(int *)(pcVar50 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pppVar14 = &psStack_e8->fn;\n          pppVar15 = &psStack_e8->fn;\n          psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)((int)&psStack_e8->fn + 2));\n          psVar46 = (ssh_sharing_connstate *)\n                    ((uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8)\n          ;\n          uVar41 = (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n          share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                            (uint)&cs_00->channels_by_server,(uint)psVar46,uVar41,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8));\n          *(char *)&psVar43->fn = (char)(uVar41 >> 0x18);\n          puVar36[(int)((int)pppVar14 + 1)] = (byte)(uVar41 >> 0x10);\n          *(char *)&psStack_108->fn = (char)(uVar41 >> 8);\n          puVar36[(int)((int)pppVar15 + 3)] = (byte)uVar41;\n          (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,0x5a,puVar36,puVar25,0);\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }" if (parenthesized_expression "(3 < (int)puVar25)" ( (binary_expression "3 < (int)puVar25" number_literal < (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);\n          if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n             (psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),\n             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8)) {\n            iVar39 = *(int *)(pcVar50 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pppVar14 = &psStack_e8->fn;\n          pppVar15 = &psStack_e8->fn;\n          psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)((int)&psStack_e8->fn + 2));\n          psVar46 = (ssh_sharing_connstate *)\n                    ((uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8)\n          ;\n          uVar41 = (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);\n          share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                            (uint)&cs_00->channels_by_server,(uint)psVar46,uVar41,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8));\n          *(char *)&psVar43->fn = (char)(uVar41 >> 0x18);\n          puVar36[(int)((int)pppVar14 + 1)] = (byte)(uVar41 >> 0x10);\n          *(char *)&psStack_108->fn = (char)(uVar41 >> 8);\n          puVar36[(int)((int)pppVar15 + 3)] = (byte)uVar41;\n          (**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,0x5a,puVar36,puVar25,0);\n          cs_00->recvlen = 0;\n          goto LAB_000784dc;\n        }" { (expression_statement "iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8);" (assignment_expression "iVar39 = getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8)" identifier = (call_expression "getstring_inner(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8)" identifier (argument_list "(puVar36,(int)puVar25,(char **)0x0,(int *)&psStack_e8)" ( identifier , (cast_expression "(int)puVar25" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , (cast_expression "(int *)&psStack_e8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_e8" & identifier)) )))) ;) (if_statement "if (((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n             (psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),\n             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8)) {\n            iVar39 = *(int *)(pcVar50 + 0x38144);\n            goto LAB_00078e80;\n          }" if (parenthesized_expression "(((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n             (psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),\n             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8))" ( (binary_expression "((iVar39 == 0) || ((int)psStack_e8 < 0)) ||\n             (psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),\n             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8)" (parenthesized_expression "((iVar39 == 0) || ((int)psStack_e8 < 0))" ( (binary_expression "(iVar39 == 0) || ((int)psStack_e8 < 0)" (parenthesized_expression "(iVar39 == 0)" ( (binary_expression "iVar39 == 0" identifier == number_literal) )) || (parenthesized_expression "((int)psStack_e8 < 0)" ( (binary_expression "(int)psStack_e8 < 0" (cast_expression "(int)psStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) || (parenthesized_expression "(psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),\n             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8)" ( (comma_expression "psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8),\n             (int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8" (assignment_expression "psVar43 = (ssh_sharing_connstate *)(puVar36 + (int)psStack_e8)" identifier = (cast_expression "(ssh_sharing_connstate *)(puVar36 + (int)psStack_e8)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + (int)psStack_e8)" ( (binary_expression "puVar36 + (int)psStack_e8" identifier + (cast_expression "(int)psStack_e8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) , (binary_expression "(int)&psVar46[-1].xchannels_by_server <= (int)psStack_e8" (cast_expression "(int)&psVar46[-1].xchannels_by_server" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar46[-1].xchannels_by_server" & (field_expression "psVar46[-1].xchannels_by_server" (subscript_expression "psVar46[-1]" identifier [ number_literal ]) . field_identifier))) <= (cast_expression "(int)psStack_e8" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n            iVar39 = *(int *)(pcVar50 + 0x38144);\n            goto LAB_00078e80;\n          }" { (expression_statement "iVar39 = *(int *)(pcVar50 + 0x38144);" (assignment_expression "iVar39 = *(int *)(pcVar50 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00078e80;" goto statement_identifier ;) })) (expression_statement "pppVar14 = &psStack_e8->fn;" (assignment_expression "pppVar14 = &psStack_e8->fn" identifier = (pointer_expression "&psStack_e8->fn" & (field_expression "psStack_e8->fn" identifier -> field_identifier))) ;) (expression_statement "pppVar15 = &psStack_e8->fn;" (assignment_expression "pppVar15 = &psStack_e8->fn" identifier = (pointer_expression "&psStack_e8->fn" & (field_expression "psStack_e8->fn" identifier -> field_identifier))) ;) (expression_statement "psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)((int)&psStack_e8->fn + 2));" (assignment_expression "psStack_108 = (ssh_sharing_connstate *)(puVar36 + (int)((int)&psStack_e8->fn + 2))" identifier = (cast_expression "(ssh_sharing_connstate *)(puVar36 + (int)((int)&psStack_e8->fn + 2))" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar36 + (int)((int)&psStack_e8->fn + 2))" ( (binary_expression "puVar36 + (int)((int)&psStack_e8->fn + 2)" identifier + (cast_expression "(int)((int)&psStack_e8->fn + 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&psStack_e8->fn + 2)" ( (binary_expression "(int)&psStack_e8->fn + 2" (cast_expression "(int)&psStack_e8->fn" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psStack_e8->fn" & (field_expression "psStack_e8->fn" identifier -> field_identifier))) + number_literal) )))) )))) ;) (expression_statement "psVar46 = (ssh_sharing_connstate *)\n                    ((uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8)\n          ;" (assignment_expression "psVar46 = (ssh_sharing_connstate *)\n                    ((uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8)" identifier = (cast_expression "(ssh_sharing_connstate *)\n                    ((uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8)" ( (binary_expression "(uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)] | (uint)*(byte *)&psStack_108->fn << 8" (binary_expression "(uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10 |\n                     (uint)puVar36[(int)((int)pppVar15 + 3)]" (binary_expression "(uint)*(byte *)&psVar43->fn << 0x18 |\n                     (uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10" (binary_expression "(uint)*(byte *)&psVar43->fn << 0x18" (binary_expression "(uint)*(byte *)&psVar43->fn" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)&psVar43->fn" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar43->fn" & (field_expression "psVar43->fn" identifier -> field_identifier)))) << number_literal) | (binary_expression "(uint)puVar36[(int)((int)pppVar14 + 1)] << 0x10" (cast_expression "(uint)puVar36[(int)((int)pppVar14 + 1)]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar36[(int)((int)pppVar14 + 1)]" identifier [ (cast_expression "(int)((int)pppVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppVar14 + 1)" ( (binary_expression "(int)pppVar14 + 1" (cast_expression "(int)pppVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ])) << number_literal)) | (cast_expression "(uint)puVar36[(int)((int)pppVar15 + 3)]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar36[(int)((int)pppVar15 + 3)]" identifier [ (cast_expression "(int)((int)pppVar15 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppVar15 + 3)" ( (binary_expression "(int)pppVar15 + 3" (cast_expression "(int)pppVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ]))) | (binary_expression "(uint)*(byte *)&psStack_108->fn << 8" (binary_expression "(uint)*(byte *)&psStack_108->fn" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)&psStack_108->fn" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_108->fn" & (field_expression "psStack_108->fn" identifier -> field_identifier)))) << number_literal)) )))) ;) (expression_statement "uVar41 = (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00);" (assignment_expression "uVar41 = (**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00)" identifier = (call_expression "(**(code **)(pcVar50 + 0x38914))(cs_00->parent->ssh,cs_00)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38914))" ( (pointer_expression "**(code **)(pcVar50 + 0x38914)" * (pointer_expression "*(code **)(pcVar50 + 0x38914)" * (cast_expression "(code **)(pcVar50 + 0x38914)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38914)" ( (binary_expression "pcVar50 + 0x38914" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,cs_00)" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) , identifier )))) ;) (expression_statement "share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                            (uint)&cs_00->channels_by_server,(uint)psVar46,uVar41,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8));" (call_expression "share_add_channel((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                            (uint)&cs_00->channels_by_server,(uint)psVar46,uVar41,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8))" identifier (argument_list "((ssh_sharing_connstate *)&cs_00->channels_by_us,\n                            (uint)&cs_00->channels_by_server,(uint)psVar46,uVar41,0,3,\n                            (ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8))" ( (cast_expression "(ssh_sharing_connstate *)&cs_00->channels_by_us" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&cs_00->channels_by_us" & (field_expression "cs_00->channels_by_us" identifier -> field_identifier))) , (binary_expression "(uint)&cs_00->channels_by_server" (parenthesized_expression "(uint)" ( identifier )) & (field_expression "cs_00->channels_by_server" identifier -> field_identifier)) , (cast_expression "(uint)psVar46" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier , number_literal , number_literal , (cast_expression "(ssh_sharing_connstate *)\n                            ((uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8)" ( (binary_expression "(uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3) |\n                            (uint)*(uchar *)((int)&psVar43->sock + 2) << 8" (binary_expression "(uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 3)" (binary_expression "(uint)*(byte *)&psVar43->sock << 0x18 |\n                             (uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10" (binary_expression "(uint)*(byte *)&psVar43->sock << 0x18" (binary_expression "(uint)*(byte *)&psVar43->sock" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)&psVar43->sock" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar43->sock" & (field_expression "psVar43->sock" identifier -> field_identifier)))) << number_literal) | (binary_expression "(uint)*(uchar *)((int)&psVar43->sock + 1) << 0x10" (binary_expression "(uint)*(uchar *)((int)&psVar43->sock + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(uchar *)((int)&psVar43->sock + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar43->sock + 1)" ( (binary_expression "(int)&psVar43->sock + 1" (cast_expression "(int)&psVar43->sock" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar43->sock" & (field_expression "psVar43->sock" identifier -> field_identifier))) + number_literal) )))) << number_literal)) | (binary_expression "(uint)*(uchar *)((int)&psVar43->sock + 3)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(uchar *)((int)&psVar43->sock + 3)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar43->sock + 3)" ( (binary_expression "(int)&psVar43->sock + 3" (cast_expression "(int)&psVar43->sock" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar43->sock" & (field_expression "psVar43->sock" identifier -> field_identifier))) + number_literal) ))))) | (binary_expression "(uint)*(uchar *)((int)&psVar43->sock + 2) << 8" (binary_expression "(uint)*(uchar *)((int)&psVar43->sock + 2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(uchar *)((int)&psVar43->sock + 2)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar43->sock + 2)" ( (binary_expression "(int)&psVar43->sock + 2" (cast_expression "(int)&psVar43->sock" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar43->sock" & (field_expression "psVar43->sock" identifier -> field_identifier))) + number_literal) )))) << number_literal)) ))) ))) ;) (expression_statement "*(char *)&psVar43->fn = (char)(uVar41 >> 0x18);" (assignment_expression "*(char *)&psVar43->fn = (char)(uVar41 >> 0x18)" (pointer_expression "*(char *)&psVar43->fn" * (cast_expression "(char *)&psVar43->fn" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar43->fn" & (field_expression "psVar43->fn" identifier -> field_identifier)))) = (cast_expression "(char)(uVar41 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar41 >> 0x18)" ( (binary_expression "uVar41 >> 0x18" identifier >> number_literal) )))) ;) (expression_statement "puVar36[(int)((int)pppVar14 + 1)] = (byte)(uVar41 >> 0x10);" (assignment_expression "puVar36[(int)((int)pppVar14 + 1)] = (byte)(uVar41 >> 0x10)" (subscript_expression "puVar36[(int)((int)pppVar14 + 1)]" identifier [ (cast_expression "(int)((int)pppVar14 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppVar14 + 1)" ( (binary_expression "(int)pppVar14 + 1" (cast_expression "(int)pppVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ]) = (call_expression "(byte)(uVar41 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar41 >> 0x10)" ( (binary_expression "uVar41 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "*(char *)&psStack_108->fn = (char)(uVar41 >> 8);" (assignment_expression "*(char *)&psStack_108->fn = (char)(uVar41 >> 8)" (pointer_expression "*(char *)&psStack_108->fn" * (cast_expression "(char *)&psStack_108->fn" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psStack_108->fn" & (field_expression "psStack_108->fn" identifier -> field_identifier)))) = (cast_expression "(char)(uVar41 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar41 >> 8)" ( (binary_expression "uVar41 >> 8" identifier >> number_literal) )))) ;) (expression_statement "puVar36[(int)((int)pppVar15 + 3)] = (byte)uVar41;" (assignment_expression "puVar36[(int)((int)pppVar15 + 3)] = (byte)uVar41" (subscript_expression "puVar36[(int)((int)pppVar15 + 3)]" identifier [ (cast_expression "(int)((int)pppVar15 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppVar15 + 3)" ( (binary_expression "(int)pppVar15 + 3" (cast_expression "(int)pppVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) ]) = (cast_expression "(byte)uVar41" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "(**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,0x5a,puVar36,puVar25,0);" (call_expression "(**(code **)(pcVar50 + 0x388fc))(cs_00->parent->ssh,cs_00->id,0x5a,puVar36,puVar25,0)" (parenthesized_expression "(**(code **)(pcVar50 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar50 + 0x388fc)" * (pointer_expression "*(code **)(pcVar50 + 0x388fc)" * (cast_expression "(code **)(pcVar50 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x388fc)" ( (binary_expression "pcVar50 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,cs_00->id,0x5a,puVar36,puVar25,0)" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) , (field_expression "cs_00->id" identifier -> field_identifier) , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "cs_00->recvlen = 0;" (assignment_expression "cs_00->recvlen = 0" (field_expression "cs_00->recvlen" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (labeled_statement "LAB_00078e80:\n        pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(iVar39 + -0x4114);" statement_identifier : (expression_statement "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(iVar39 + -0x4114);" (assignment_expression "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(iVar39 + -0x4114)" identifier = (cast_expression "(char *)(**(code **)(pcVar50 + 0x38158))(iVar39 + -0x4114)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x38158))(iVar39 + -0x4114)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38158))" ( (pointer_expression "**(code **)(pcVar50 + 0x38158)" * (pointer_expression "*(code **)(pcVar50 + 0x38158)" * (cast_expression "(code **)(pcVar50 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38158)" ( (binary_expression "pcVar50 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(iVar39 + -0x4114)" ( (binary_expression "iVar39 + -0x4114" identifier + number_literal) ))))) ;)) (labeled_statement "LAB_000787a4:\n        while (pcVar18 == (char *)0x0) {\n          (**(code **)(pcVar50 + 0x38a34))\n                    (*(int *)(pcVar50 + 0x38144) + -0x3f38,*(int *)(pcVar50 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar50 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43);\n        }" statement_identifier : (while_statement "while (pcVar18 == (char *)0x0) {\n          (**(code **)(pcVar50 + 0x38a34))\n                    (*(int *)(pcVar50 + 0x38144) + -0x3f38,*(int *)(pcVar50 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar50 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43);\n        }" while (parenthesized_expression "(pcVar18 == (char *)0x0)" ( (binary_expression "pcVar18 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (**(code **)(pcVar50 + 0x38a34))\n                    (*(int *)(pcVar50 + 0x38144) + -0x3f38,*(int *)(pcVar50 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar50 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43);\n        }" { (expression_statement "(**(code **)(pcVar50 + 0x38a34))\n                    (*(int *)(pcVar50 + 0x38144) + -0x3f38,*(int *)(pcVar50 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar50 + 0x38144) + -0x3e30);" (call_expression "(**(code **)(pcVar50 + 0x38a34))\n                    (*(int *)(pcVar50 + 0x38144) + -0x3f38,*(int *)(pcVar50 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar50 + 0x38144) + -0x3e30)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38a34))" ( (pointer_expression "**(code **)(pcVar50 + 0x38a34)" * (pointer_expression "*(code **)(pcVar50 + 0x38a34)" * (cast_expression "(code **)(pcVar50 + 0x38a34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38a34)" ( (binary_expression "pcVar50 + 0x38a34" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar50 + 0x38144) + -0x3f38,*(int *)(pcVar50 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar50 + 0x38144) + -0x3e30)" ( (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x3f38" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x42c4" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x3e30" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0007927c:\n          pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43);" statement_identifier : (expression_statement "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43);" (assignment_expression "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43)" identifier = (cast_expression "(char *)(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x38158))\n                                      (*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38158))" ( (pointer_expression "**(code **)(pcVar50 + 0x38158)" * (pointer_expression "*(code **)(pcVar50 + 0x38158)" * (cast_expression "(code **)(pcVar50 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38158)" ( (binary_expression "pcVar50 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar50 + 0x38144) + -0x40c8,psVar43)" ( (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x40c8" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier ))))) ;)) }))) (expression_statement "share_disconnect(cs_00,pcVar18);" (call_expression "share_disconnect(cs_00,pcVar18)" identifier (argument_list "(cs_00,pcVar18)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar50 + 0x38124))(pcVar18);" (call_expression "(**(code **)(pcVar50 + 0x38124))(pcVar18)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38124))" ( (pointer_expression "**(code **)(pcVar50 + 0x38124)" * (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(pcVar18)" ( identifier ))) ;) (expression_statement "cs_00->recvlen = 0;" (assignment_expression "cs_00->recvlen = 0" (field_expression "cs_00->recvlen" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (expression_statement "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                  (*(int *)(pcVar50 + 0x38144) + -0x415c,iVar39);" (assignment_expression "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))\n                                  (*(int *)(pcVar50 + 0x38144) + -0x415c,iVar39)" identifier = (cast_expression "(char *)(**(code **)(pcVar50 + 0x38158))\n                                  (*(int *)(pcVar50 + 0x38144) + -0x415c,iVar39)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x38158))\n                                  (*(int *)(pcVar50 + 0x38144) + -0x415c,iVar39)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38158))" ( (pointer_expression "**(code **)(pcVar50 + 0x38158)" * (pointer_expression "*(code **)(pcVar50 + 0x38158)" * (cast_expression "(code **)(pcVar50 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38158)" ( (binary_expression "pcVar50 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar50 + 0x38144) + -0x415c,iVar39)" ( (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x415c" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier ))))) ;) (labeled_statement "LAB_000781e4:\n      share_disconnect(cs_00,pcVar18);" statement_identifier : (expression_statement "share_disconnect(cs_00,pcVar18);" (call_expression "share_disconnect(cs_00,pcVar18)" identifier (argument_list "(cs_00,pcVar18)" ( identifier , identifier ))) ;)) (expression_statement "(**(code **)(pcVar50 + 0x38124))(pcVar18);" (call_expression "(**(code **)(pcVar50 + 0x38124))(pcVar18)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38124))" ( (pointer_expression "**(code **)(pcVar50 + 0x38124)" * (pointer_expression "*(code **)(pcVar50 + 0x38124)" * (cast_expression "(code **)(pcVar50 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38124)" ( (binary_expression "pcVar50 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(pcVar18)" ( identifier ))) ;) (expression_statement "puVar44 = puVar45;" (assignment_expression "puVar44 = puVar45" identifier = identifier) ;) (expression_statement "psVar47 = psVar37;" (assignment_expression "psVar47 = psVar37" identifier = identifier) ;) (labeled_statement "LAB_00078210:\n      cs_00->crLine = 0;" statement_identifier : (expression_statement "cs_00->crLine = 0;" (assignment_expression "cs_00->crLine = 0" (field_expression "cs_00->crLine" identifier -> field_identifier) = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "uVar41 = cs_00->recvlen;" (assignment_expression "uVar41 = cs_00->recvlen" identifier = (field_expression "cs_00->recvlen" identifier -> field_identifier)) ;) (expression_statement "uVar32 = *(uchar *)&psVar37->fn;" (assignment_expression "uVar32 = *(uchar *)&psVar37->fn" identifier = (pointer_expression "*(uchar *)&psVar37->fn" * (cast_expression "(uchar *)&psVar37->fn" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar37->fn" & (field_expression "psVar37->fn" identifier -> field_identifier))))) ;) (expression_statement "puVar40 = (uint *)((int)puVar44 + -1);" (assignment_expression "puVar40 = (uint *)((int)puVar44 + -1)" identifier = (cast_expression "(uint *)((int)puVar44 + -1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar44 + -1)" ( (binary_expression "(int)puVar44 + -1" (cast_expression "(int)puVar44" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "psVar30 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1);" (assignment_expression "psVar30 = (ssh_sharing_connstate *)((int)&psVar37->fn + 1)" identifier = (cast_expression "(ssh_sharing_connstate *)((int)&psVar37->fn + 1)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar37->fn + 1)" ( (binary_expression "(int)&psVar37->fn + 1" (cast_expression "(int)&psVar37->fn" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar37->fn" & (field_expression "psVar37->fn" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "puVar45 = puVar40;" (assignment_expression "puVar45 = puVar40" identifier = identifier) ;) (if_statement "if (uVar32 == '\n') {\nLAB_0007855c:\n    psVar37 = psVar30;\n    if (0x2d < uVar41) {\n      psVar43 = (ssh_sharing_connstate *)cs_00->recvbuf;\n      iVar39 = (**(code **)(pcVar50 + 0x38bf8))(psVar43,*(int *)(pcVar50 + 0x38144) + -0x3e10,0x2e);\n      if (iVar39 == 0) {\n        if ((0 < (int)uVar41) && (cs_00->recvbuf[uVar41 - 1] == '\r')) {\n          cs_00->recvlen = uVar41 - 1;\n          uVar41 = uVar41 - 1;\n        }\n        (**(code **)(pcVar50 + 0x388f4))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(pcVar50 + 0x38144) + -0x417c,uVar41,psVar43\n                  );\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }\n    }\n    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }" if (parenthesized_expression "(uVar32 == '\n')" ( (binary_expression "uVar32 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0007855c:\n    psVar37 = psVar30;\n    if (0x2d < uVar41) {\n      psVar43 = (ssh_sharing_connstate *)cs_00->recvbuf;\n      iVar39 = (**(code **)(pcVar50 + 0x38bf8))(psVar43,*(int *)(pcVar50 + 0x38144) + -0x3e10,0x2e);\n      if (iVar39 == 0) {\n        if ((0 < (int)uVar41) && (cs_00->recvbuf[uVar41 - 1] == '\r')) {\n          cs_00->recvlen = uVar41 - 1;\n          uVar41 = uVar41 - 1;\n        }\n        (**(code **)(pcVar50 + 0x388f4))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(pcVar50 + 0x38144) + -0x417c,uVar41,psVar43\n                  );\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }\n    }\n    pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }" { (labeled_statement "LAB_0007855c:\n    psVar37 = psVar30;" statement_identifier : (expression_statement "psVar37 = psVar30;" (assignment_expression "psVar37 = psVar30" identifier = identifier) ;)) (if_statement "if (0x2d < uVar41) {\n      psVar43 = (ssh_sharing_connstate *)cs_00->recvbuf;\n      iVar39 = (**(code **)(pcVar50 + 0x38bf8))(psVar43,*(int *)(pcVar50 + 0x38144) + -0x3e10,0x2e);\n      if (iVar39 == 0) {\n        if ((0 < (int)uVar41) && (cs_00->recvbuf[uVar41 - 1] == '\r')) {\n          cs_00->recvlen = uVar41 - 1;\n          uVar41 = uVar41 - 1;\n        }\n        (**(code **)(pcVar50 + 0x388f4))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(pcVar50 + 0x38144) + -0x417c,uVar41,psVar43\n                  );\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }\n    }" if (parenthesized_expression "(0x2d < uVar41)" ( (binary_expression "0x2d < uVar41" number_literal < identifier) )) (compound_statement "{\n      psVar43 = (ssh_sharing_connstate *)cs_00->recvbuf;\n      iVar39 = (**(code **)(pcVar50 + 0x38bf8))(psVar43,*(int *)(pcVar50 + 0x38144) + -0x3e10,0x2e);\n      if (iVar39 == 0) {\n        if ((0 < (int)uVar41) && (cs_00->recvbuf[uVar41 - 1] == '\r')) {\n          cs_00->recvlen = uVar41 - 1;\n          uVar41 = uVar41 - 1;\n        }\n        (**(code **)(pcVar50 + 0x388f4))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(pcVar50 + 0x38144) + -0x417c,uVar41,psVar43\n                  );\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }\n    }" { (expression_statement "psVar43 = (ssh_sharing_connstate *)cs_00->recvbuf;" (assignment_expression "psVar43 = (ssh_sharing_connstate *)cs_00->recvbuf" identifier = (cast_expression "(ssh_sharing_connstate *)cs_00->recvbuf" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "cs_00->recvbuf" identifier -> field_identifier))) ;) (expression_statement "iVar39 = (**(code **)(pcVar50 + 0x38bf8))(psVar43,*(int *)(pcVar50 + 0x38144) + -0x3e10,0x2e);" (assignment_expression "iVar39 = (**(code **)(pcVar50 + 0x38bf8))(psVar43,*(int *)(pcVar50 + 0x38144) + -0x3e10,0x2e)" identifier = (call_expression "(**(code **)(pcVar50 + 0x38bf8))(psVar43,*(int *)(pcVar50 + 0x38144) + -0x3e10,0x2e)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38bf8))" ( (pointer_expression "**(code **)(pcVar50 + 0x38bf8)" * (pointer_expression "*(code **)(pcVar50 + 0x38bf8)" * (cast_expression "(code **)(pcVar50 + 0x38bf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38bf8)" ( (binary_expression "pcVar50 + 0x38bf8" identifier + number_literal) ))))) )) (argument_list "(psVar43,*(int *)(pcVar50 + 0x38144) + -0x3e10,0x2e)" ( identifier , (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x3e10" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar39 == 0) {\n        if ((0 < (int)uVar41) && (cs_00->recvbuf[uVar41 - 1] == '\r')) {\n          cs_00->recvlen = uVar41 - 1;\n          uVar41 = uVar41 - 1;\n        }\n        (**(code **)(pcVar50 + 0x388f4))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(pcVar50 + 0x38144) + -0x417c,uVar41,psVar43\n                  );\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }" if (parenthesized_expression "(iVar39 == 0)" ( (binary_expression "iVar39 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((0 < (int)uVar41) && (cs_00->recvbuf[uVar41 - 1] == '\r')) {\n          cs_00->recvlen = uVar41 - 1;\n          uVar41 = uVar41 - 1;\n        }\n        (**(code **)(pcVar50 + 0x388f4))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(pcVar50 + 0x38144) + -0x417c,uVar41,psVar43\n                  );\n        cs_00->got_verstring = 1;\n        cs_00->recvlen = 0;\n        goto LAB_000784dc;\n      }" { (if_statement "if ((0 < (int)uVar41) && (cs_00->recvbuf[uVar41 - 1] == '\r')) {\n          cs_00->recvlen = uVar41 - 1;\n          uVar41 = uVar41 - 1;\n        }" if (parenthesized_expression "((0 < (int)uVar41) && (cs_00->recvbuf[uVar41 - 1] == '\r'))" ( (binary_expression "(0 < (int)uVar41) && (cs_00->recvbuf[uVar41 - 1] == '\r')" (parenthesized_expression "(0 < (int)uVar41)" ( (binary_expression "0 < (int)uVar41" number_literal < (cast_expression "(int)uVar41" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(cs_00->recvbuf[uVar41 - 1] == '\r')" ( (binary_expression "cs_00->recvbuf[uVar41 - 1] == '\r'" (subscript_expression "cs_00->recvbuf[uVar41 - 1]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ (binary_expression "uVar41 - 1" identifier - number_literal) ]) == (char_literal "'\r'" ' escape_sequence ')) ))) )) (compound_statement "{\n          cs_00->recvlen = uVar41 - 1;\n          uVar41 = uVar41 - 1;\n        }" { (expression_statement "cs_00->recvlen = uVar41 - 1;" (assignment_expression "cs_00->recvlen = uVar41 - 1" (field_expression "cs_00->recvlen" identifier -> field_identifier) = (binary_expression "uVar41 - 1" identifier - number_literal)) ;) (expression_statement "uVar41 = uVar41 - 1;" (assignment_expression "uVar41 = uVar41 - 1" identifier = (binary_expression "uVar41 - 1" identifier - number_literal)) ;) })) (expression_statement "(**(code **)(pcVar50 + 0x388f4))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(pcVar50 + 0x38144) + -0x417c,uVar41,psVar43\n                  );" (call_expression "(**(code **)(pcVar50 + 0x388f4))\n                  (cs_00->parent->ssh,cs_00->id,*(int *)(pcVar50 + 0x38144) + -0x417c,uVar41,psVar43\n                  )" (parenthesized_expression "(**(code **)(pcVar50 + 0x388f4))" ( (pointer_expression "**(code **)(pcVar50 + 0x388f4)" * (pointer_expression "*(code **)(pcVar50 + 0x388f4)" * (cast_expression "(code **)(pcVar50 + 0x388f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x388f4)" ( (binary_expression "pcVar50 + 0x388f4" identifier + number_literal) ))))) )) (argument_list "(cs_00->parent->ssh,cs_00->id,*(int *)(pcVar50 + 0x38144) + -0x417c,uVar41,psVar43\n                  )" ( (field_expression "cs_00->parent->ssh" (field_expression "cs_00->parent" identifier -> field_identifier) -> field_identifier) , (field_expression "cs_00->id" identifier -> field_identifier) , (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x417c" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "cs_00->got_verstring = 1;" (assignment_expression "cs_00->got_verstring = 1" (field_expression "cs_00->got_verstring" identifier -> field_identifier) = number_literal) ;) (expression_statement "cs_00->recvlen = 0;" (assignment_expression "cs_00->recvlen = 0" (field_expression "cs_00->recvlen" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) })) (expression_statement "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41ac);" (assignment_expression "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41ac)" identifier = (cast_expression "(char *)(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41ac)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41ac)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38158))" ( (pointer_expression "**(code **)(pcVar50 + 0x38158)" * (pointer_expression "*(code **)(pcVar50 + 0x38158)" * (cast_expression "(code **)(pcVar50 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38158)" ( (binary_expression "pcVar50 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar50 + 0x38144) + -0x41ac)" ( (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x41ac" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_000781e4;" goto statement_identifier ;) })) (expression_statement "psVar34 = (ssh_sharing_connstate *)((int)puVar44 + (int)(psVar37->recvbuf + -0x20));" (assignment_expression "psVar34 = (ssh_sharing_connstate *)((int)puVar44 + (int)(psVar37->recvbuf + -0x20))" identifier = (cast_expression "(ssh_sharing_connstate *)((int)puVar44 + (int)(psVar37->recvbuf + -0x20))" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar44 + (int)(psVar37->recvbuf + -0x20))" ( (binary_expression "(int)puVar44 + (int)(psVar37->recvbuf + -0x20)" (cast_expression "(int)puVar44" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(psVar37->recvbuf + -0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(psVar37->recvbuf + -0x20)" ( (binary_expression "psVar37->recvbuf + -0x20" (field_expression "psVar37->recvbuf" identifier -> field_identifier) + number_literal) )))) )))) ;) (if_statement "if (uVar41 < 0x4010) {\n    uVar41 = uVar41 + 1;\n    psVar47 = psVar30;\n    do {\n      cs_00->recvlen = uVar41;\n      cs_00->recvbuf[uVar41 - 1] = uVar32;\n      if (psVar34 == psVar47) goto LAB_000781c4;\n      puVar44 = (uint *)((int)puVar40 + ((int)psVar37 - (int)psVar47));\n      psVar30 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);\n      uVar32 = *(uchar *)&psVar47->fn;\n      puVar45 = puVar44;\n      if (uVar32 == '\n') goto LAB_0007855c;\n      uVar41 = uVar41 + 1;\n      psVar47 = psVar30;\n    } while (uVar41 != 0x4011);\n  }" if (parenthesized_expression "(uVar41 < 0x4010)" ( (binary_expression "uVar41 < 0x4010" identifier < number_literal) )) (compound_statement "{\n    uVar41 = uVar41 + 1;\n    psVar47 = psVar30;\n    do {\n      cs_00->recvlen = uVar41;\n      cs_00->recvbuf[uVar41 - 1] = uVar32;\n      if (psVar34 == psVar47) goto LAB_000781c4;\n      puVar44 = (uint *)((int)puVar40 + ((int)psVar37 - (int)psVar47));\n      psVar30 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);\n      uVar32 = *(uchar *)&psVar47->fn;\n      puVar45 = puVar44;\n      if (uVar32 == '\n') goto LAB_0007855c;\n      uVar41 = uVar41 + 1;\n      psVar47 = psVar30;\n    } while (uVar41 != 0x4011);\n  }" { (expression_statement "uVar41 = uVar41 + 1;" (assignment_expression "uVar41 = uVar41 + 1" identifier = (binary_expression "uVar41 + 1" identifier + number_literal)) ;) (expression_statement "psVar47 = psVar30;" (assignment_expression "psVar47 = psVar30" identifier = identifier) ;) (do_statement "do {\n      cs_00->recvlen = uVar41;\n      cs_00->recvbuf[uVar41 - 1] = uVar32;\n      if (psVar34 == psVar47) goto LAB_000781c4;\n      puVar44 = (uint *)((int)puVar40 + ((int)psVar37 - (int)psVar47));\n      psVar30 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);\n      uVar32 = *(uchar *)&psVar47->fn;\n      puVar45 = puVar44;\n      if (uVar32 == '\n') goto LAB_0007855c;\n      uVar41 = uVar41 + 1;\n      psVar47 = psVar30;\n    } while (uVar41 != 0x4011);" do (compound_statement "{\n      cs_00->recvlen = uVar41;\n      cs_00->recvbuf[uVar41 - 1] = uVar32;\n      if (psVar34 == psVar47) goto LAB_000781c4;\n      puVar44 = (uint *)((int)puVar40 + ((int)psVar37 - (int)psVar47));\n      psVar30 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);\n      uVar32 = *(uchar *)&psVar47->fn;\n      puVar45 = puVar44;\n      if (uVar32 == '\n') goto LAB_0007855c;\n      uVar41 = uVar41 + 1;\n      psVar47 = psVar30;\n    }" { (expression_statement "cs_00->recvlen = uVar41;" (assignment_expression "cs_00->recvlen = uVar41" (field_expression "cs_00->recvlen" identifier -> field_identifier) = identifier) ;) (expression_statement "cs_00->recvbuf[uVar41 - 1] = uVar32;" (assignment_expression "cs_00->recvbuf[uVar41 - 1] = uVar32" (subscript_expression "cs_00->recvbuf[uVar41 - 1]" (field_expression "cs_00->recvbuf" identifier -> field_identifier) [ (binary_expression "uVar41 - 1" identifier - number_literal) ]) = identifier) ;) (if_statement "if (psVar34 == psVar47) goto LAB_000781c4;" if (parenthesized_expression "(psVar34 == psVar47)" ( (binary_expression "psVar34 == psVar47" identifier == identifier) )) (goto_statement "goto LAB_000781c4;" goto statement_identifier ;)) (expression_statement "puVar44 = (uint *)((int)puVar40 + ((int)psVar37 - (int)psVar47));" (assignment_expression "puVar44 = (uint *)((int)puVar40 + ((int)psVar37 - (int)psVar47))" identifier = (cast_expression "(uint *)((int)puVar40 + ((int)psVar37 - (int)psVar47))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar40 + ((int)psVar37 - (int)psVar47))" ( (binary_expression "(int)puVar40 + ((int)psVar37 - (int)psVar47)" (cast_expression "(int)puVar40" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)psVar37 - (int)psVar47)" ( (binary_expression "(int)psVar37 - (int)psVar47" (cast_expression "(int)psVar37" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)psVar47" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "psVar30 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1);" (assignment_expression "psVar30 = (ssh_sharing_connstate *)((int)&psVar47->fn + 1)" identifier = (cast_expression "(ssh_sharing_connstate *)((int)&psVar47->fn + 1)" ( (type_descriptor "ssh_sharing_connstate *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar47->fn + 1)" ( (binary_expression "(int)&psVar47->fn + 1" (cast_expression "(int)&psVar47->fn" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar47->fn" & (field_expression "psVar47->fn" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "uVar32 = *(uchar *)&psVar47->fn;" (assignment_expression "uVar32 = *(uchar *)&psVar47->fn" identifier = (pointer_expression "*(uchar *)&psVar47->fn" * (cast_expression "(uchar *)&psVar47->fn" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar47->fn" & (field_expression "psVar47->fn" identifier -> field_identifier))))) ;) (expression_statement "puVar45 = puVar44;" (assignment_expression "puVar45 = puVar44" identifier = identifier) ;) (if_statement "if (uVar32 == '\n') goto LAB_0007855c;" if (parenthesized_expression "(uVar32 == '\n')" ( (binary_expression "uVar32 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) )) (goto_statement "goto LAB_0007855c;" goto statement_identifier ;)) (expression_statement "uVar41 = uVar41 + 1;" (assignment_expression "uVar41 = uVar41 + 1" identifier = (binary_expression "uVar41 + 1" identifier + number_literal)) ;) (expression_statement "psVar47 = psVar30;" (assignment_expression "psVar47 = psVar30" identifier = identifier) ;) }) while (parenthesized_expression "(uVar41 != 0x4011)" ( (binary_expression "uVar41 != 0x4011" identifier != number_literal) )) ;) })) (expression_statement "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41cc);" (assignment_expression "pcVar18 = (char *)(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41cc)" identifier = (cast_expression "(char *)(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41cc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar50 + 0x38158))(*(int *)(pcVar50 + 0x38144) + -0x41cc)" (parenthesized_expression "(**(code **)(pcVar50 + 0x38158))" ( (pointer_expression "**(code **)(pcVar50 + 0x38158)" * (pointer_expression "*(code **)(pcVar50 + 0x38158)" * (cast_expression "(code **)(pcVar50 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar50 + 0x38158)" ( (binary_expression "pcVar50 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar50 + 0x38144) + -0x41cc)" ( (binary_expression "*(int *)(pcVar50 + 0x38144) + -0x41cc" (pointer_expression "*(int *)(pcVar50 + 0x38144)" * (cast_expression "(int *)(pcVar50 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar50 + 0x38144)" ( (binary_expression "pcVar50 + 0x38144" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "puVar45 = puVar44;" (assignment_expression "puVar45 = puVar44" identifier = identifier) ;) (expression_statement "psVar37 = psVar30;" (assignment_expression "psVar37 = psVar30" identifier = identifier) ;) (goto_statement "goto LAB_000781e4;" goto statement_identifier ;) })))
(translation_unit "void share_xchannel_confirmation(byte *param_1,int param_2,undefined4 *param_3,int param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  byte bVar4;\n  char cVar5;\n  char cVar6;\n  undefined1 uVar7;\n  undefined1 uVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  int iVar11;\n  byte ****ppppbVar12;\n  int iVar13;\n  byte ****ppppbVar14;\n  undefined1 *puVar15;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  byte bVar21;\n  undefined4 uVar19;\n  undefined4 *puVar20;\n  int iVar22;\n  uint uVar23;\n  undefined1 *puVar24;\n  byte *pbVar25;\n  byte *pbVar26;\n  int iVar27;\n  uint in_t3;\n  byte *pbVar28;\n  undefined4 *puVar29;\n  uint uVar30;\n  byte *pbVar31;\n  undefined4 *unaff_s1;\n  undefined *unaff_s2;\n  byte *****pppppbVar32;\n  byte *****pppppbVar33;\n  undefined4 *unaff_s3;\n  byte *unaff_s4;\n  byte *pbVar34;\n  byte *****pppppbVar35;\n  byte *****pppppbVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  int *piVar39;\n  code *pcVar40;\n  undefined4 uVar41;\n  byte ****ppppbStack_108;\n  byte ****ppppbStack_e8;\n  byte ****ppppbStack_e4;\n  undefined4 uStack_e0;\n  byte ***pppbStack_c0;\n  int iStack_bc;\n  int iStack_b8;\n  int iStack_b4;\n  byte ****ppppbStack_b0;\n  undefined4 *puStack_ac;\n  byte *pbStack_a8;\n  byte *pbStack_a4;\n  undefined *puStack_a0;\n  int iStack_9c;\n  int iStack_98;\n  undefined4 uStack_94;\n  undefined4 uStack_80;\n  int iStack_7c;\n  undefined *puStack_78;\n  undefined4 uStack_70;\n  byte ***pppbStack_6c;\n  undefined4 *puStack_68;\n  undefined4 *puStack_64;\n  undefined *puStack_60;\n  code *pcStack_5c;\n  undefined4 *local_48;\n  undefined4 *local_44;\n  undefined4 local_34;\n  undefined1 local_30;\n  undefined1 local_2f;\n  undefined1 local_2e;\n  undefined1 local_2d;\n  int local_2c;\n  \n  pppppbVar35 = (byte *****)PTR___stack_chk_guard_000b0c9c;\n  puVar29 = *(undefined4 **)(param_2 + 0x10);\n  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;\n  if (puVar29 != (undefined4 *)0x0) {\n    unaff_s4 = param_1 + 8;\n    unaff_s3 = param_3 + 3;\n    unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;\n    do {\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    } while (puVar29 != (undefined4 *)0x0);\n  }\n  local_34 = *(undefined4 *)(param_2 + 4);\n  param_4 = param_4 - *(int *)(param_2 + 0xc);\n  iVar27 = *(int *)(*(int *)(param_1 + 0xc) + 0x14);\n  local_44 = (undefined4 *)(PTR_DAT_000b01d0 + -0x4224);\n  iVar22 = *(int *)(param_1 + 4);\n  local_30 = (undefined1)((uint)param_4 >> 0x18);\n  local_2e = (undefined1)((uint)param_4 >> 8);\n  local_48 = (undefined4 *)0x8;\n  local_2f = (undefined1)((uint)param_4 >> 0x10);\n  local_2d = (undefined1)param_4;\n  (*(code *)PTR_ssh_send_packet_from_downstream_000b0988)(iVar27,iVar22,0x5d,&local_34);\n  if ((byte ****)local_2c == *pppppbVar35) {\n    return;\n  }\n  pcVar40 = share_xchannel_failure;\n  puVar37 = PTR___stack_chk_fail_000b0c70;\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\n  puStack_78 = puVar37 + 0x40180;\n  uStack_70 = *(undefined4 *)(iVar22 + 4);\n  pbVar25 = &DAT_00000061;\n  pbVar31 = (byte *)&uStack_70;\n  pppppbVar32 = *(byte ******)(puVar37 + 0x38ccc);\n  iStack_7c = *(int *)(puVar37 + 0x38200) + -0x4248;\n  pppbStack_6c = (byte ***)*pppppbVar32;\n  uStack_80 = 4;\n  puStack_68 = puVar29;\n  puStack_64 = unaff_s1;\n  puStack_60 = unaff_s2;\n  pcStack_5c = pcVar40;\n  (**(code **)(puVar37 + 0x389b8))\n            (*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4));\n  *(undefined4 *)(iVar22 + 8) = 0;\n  iVar18 = iVar27;\n  share_dead_xchannel_respond(iVar27,iVar22);\n  if ((byte ****)pppbStack_6c == *pppppbVar32) {\n    return;\n  }\n  pcVar40 = *(code **)(puStack_78 + -0x74e0);\n  uVar41 = 0x7808c;\n  (*pcVar40)();\n  iVar11 = *(int *)(iVar18 + 0x10);\n  piVar39 = *(int **)(pcVar40 + 0x38c10);\n  puStack_a0 = (undefined *)pppppbVar35;\n  iStack_bc = *piVar39;\n  pbVar34 = pbVar31;\n  iStack_b8 = iVar22;\n  iStack_b4 = iVar27;\n  ppppbStack_b0 = (byte ****)pppppbVar32;\n  puStack_ac = unaff_s3;\n  pbStack_a8 = unaff_s4;\n  pbStack_a4 = param_1;\n  iStack_9c = param_4;\n  iStack_98 = param_2;\n  uStack_94 = uVar41;\n  if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar11 != 0) goto LAB_00078210;\n    *(undefined4 *)(iVar18 + 0x4030) = 0;\n  }\n  if (pbVar31 == (byte *)0x0) {\nLAB_000781c4:\n    *(undefined4 *)(iVar18 + 0x10) = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );\n  }\n  uVar30 = *(uint *)(iVar18 + 0x4030);\n  bVar21 = *pbVar25;\n  pbVar34 = pbVar31 + -1;\n  pbVar28 = pbVar25 + 1;\n  if (bVar21 == 10) {\nLAB_0007855c:\n    pbVar25 = pbVar28;\n    if (0x2d < uVar30) {\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }\n    uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }\n  pbVar16 = pbVar31;\n  if (uVar30 < 0x4010) {\n    uVar30 = uVar30 + 1;\n    pbVar26 = pbVar25 + (int)pbVar34;\n    pbVar34 = pbVar31;\n    param_1 = pbVar28;\n    do {\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    } while (uVar30 != 0x4011);\n  }\n  uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc);\n  pbVar34 = pbVar16;\n  pbVar25 = pbVar28;\n  goto LAB_000781e4;\n}\n\n" (function_definition "void share_xchannel_confirmation(byte *param_1,int param_2,undefined4 *param_3,int param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  byte bVar4;\n  char cVar5;\n  char cVar6;\n  undefined1 uVar7;\n  undefined1 uVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  int iVar11;\n  byte ****ppppbVar12;\n  int iVar13;\n  byte ****ppppbVar14;\n  undefined1 *puVar15;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  byte bVar21;\n  undefined4 uVar19;\n  undefined4 *puVar20;\n  int iVar22;\n  uint uVar23;\n  undefined1 *puVar24;\n  byte *pbVar25;\n  byte *pbVar26;\n  int iVar27;\n  uint in_t3;\n  byte *pbVar28;\n  undefined4 *puVar29;\n  uint uVar30;\n  byte *pbVar31;\n  undefined4 *unaff_s1;\n  undefined *unaff_s2;\n  byte *****pppppbVar32;\n  byte *****pppppbVar33;\n  undefined4 *unaff_s3;\n  byte *unaff_s4;\n  byte *pbVar34;\n  byte *****pppppbVar35;\n  byte *****pppppbVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  int *piVar39;\n  code *pcVar40;\n  undefined4 uVar41;\n  byte ****ppppbStack_108;\n  byte ****ppppbStack_e8;\n  byte ****ppppbStack_e4;\n  undefined4 uStack_e0;\n  byte ***pppbStack_c0;\n  int iStack_bc;\n  int iStack_b8;\n  int iStack_b4;\n  byte ****ppppbStack_b0;\n  undefined4 *puStack_ac;\n  byte *pbStack_a8;\n  byte *pbStack_a4;\n  undefined *puStack_a0;\n  int iStack_9c;\n  int iStack_98;\n  undefined4 uStack_94;\n  undefined4 uStack_80;\n  int iStack_7c;\n  undefined *puStack_78;\n  undefined4 uStack_70;\n  byte ***pppbStack_6c;\n  undefined4 *puStack_68;\n  undefined4 *puStack_64;\n  undefined *puStack_60;\n  code *pcStack_5c;\n  undefined4 *local_48;\n  undefined4 *local_44;\n  undefined4 local_34;\n  undefined1 local_30;\n  undefined1 local_2f;\n  undefined1 local_2e;\n  undefined1 local_2d;\n  int local_2c;\n  \n  pppppbVar35 = (byte *****)PTR___stack_chk_guard_000b0c9c;\n  puVar29 = *(undefined4 **)(param_2 + 0x10);\n  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;\n  if (puVar29 != (undefined4 *)0x0) {\n    unaff_s4 = param_1 + 8;\n    unaff_s3 = param_3 + 3;\n    unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;\n    do {\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    } while (puVar29 != (undefined4 *)0x0);\n  }\n  local_34 = *(undefined4 *)(param_2 + 4);\n  param_4 = param_4 - *(int *)(param_2 + 0xc);\n  iVar27 = *(int *)(*(int *)(param_1 + 0xc) + 0x14);\n  local_44 = (undefined4 *)(PTR_DAT_000b01d0 + -0x4224);\n  iVar22 = *(int *)(param_1 + 4);\n  local_30 = (undefined1)((uint)param_4 >> 0x18);\n  local_2e = (undefined1)((uint)param_4 >> 8);\n  local_48 = (undefined4 *)0x8;\n  local_2f = (undefined1)((uint)param_4 >> 0x10);\n  local_2d = (undefined1)param_4;\n  (*(code *)PTR_ssh_send_packet_from_downstream_000b0988)(iVar27,iVar22,0x5d,&local_34);\n  if ((byte ****)local_2c == *pppppbVar35) {\n    return;\n  }\n  pcVar40 = share_xchannel_failure;\n  puVar37 = PTR___stack_chk_fail_000b0c70;\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\n  puStack_78 = puVar37 + 0x40180;\n  uStack_70 = *(undefined4 *)(iVar22 + 4);\n  pbVar25 = &DAT_00000061;\n  pbVar31 = (byte *)&uStack_70;\n  pppppbVar32 = *(byte ******)(puVar37 + 0x38ccc);\n  iStack_7c = *(int *)(puVar37 + 0x38200) + -0x4248;\n  pppbStack_6c = (byte ***)*pppppbVar32;\n  uStack_80 = 4;\n  puStack_68 = puVar29;\n  puStack_64 = unaff_s1;\n  puStack_60 = unaff_s2;\n  pcStack_5c = pcVar40;\n  (**(code **)(puVar37 + 0x389b8))\n            (*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4));\n  *(undefined4 *)(iVar22 + 8) = 0;\n  iVar18 = iVar27;\n  share_dead_xchannel_respond(iVar27,iVar22);\n  if ((byte ****)pppbStack_6c == *pppppbVar32) {\n    return;\n  }\n  pcVar40 = *(code **)(puStack_78 + -0x74e0);\n  uVar41 = 0x7808c;\n  (*pcVar40)();\n  iVar11 = *(int *)(iVar18 + 0x10);\n  piVar39 = *(int **)(pcVar40 + 0x38c10);\n  puStack_a0 = (undefined *)pppppbVar35;\n  iStack_bc = *piVar39;\n  pbVar34 = pbVar31;\n  iStack_b8 = iVar22;\n  iStack_b4 = iVar27;\n  ppppbStack_b0 = (byte ****)pppppbVar32;\n  puStack_ac = unaff_s3;\n  pbStack_a8 = unaff_s4;\n  pbStack_a4 = param_1;\n  iStack_9c = param_4;\n  iStack_98 = param_2;\n  uStack_94 = uVar41;\n  if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar11 != 0) goto LAB_00078210;\n    *(undefined4 *)(iVar18 + 0x4030) = 0;\n  }\n  if (pbVar31 == (byte *)0x0) {\nLAB_000781c4:\n    *(undefined4 *)(iVar18 + 0x10) = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );\n  }\n  uVar30 = *(uint *)(iVar18 + 0x4030);\n  bVar21 = *pbVar25;\n  pbVar34 = pbVar31 + -1;\n  pbVar28 = pbVar25 + 1;\n  if (bVar21 == 10) {\nLAB_0007855c:\n    pbVar25 = pbVar28;\n    if (0x2d < uVar30) {\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }\n    uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }\n  pbVar16 = pbVar31;\n  if (uVar30 < 0x4010) {\n    uVar30 = uVar30 + 1;\n    pbVar26 = pbVar25 + (int)pbVar34;\n    pbVar34 = pbVar31;\n    param_1 = pbVar28;\n    do {\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    } while (uVar30 != 0x4011);\n  }\n  uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc);\n  pbVar34 = pbVar16;\n  pbVar25 = pbVar28;\n  goto LAB_000781e4;\n}" primitive_type (function_declarator "share_xchannel_confirmation(byte *param_1,int param_2,undefined4 *param_3,int param_4)" identifier (parameter_list "(byte *param_1,int param_2,undefined4 *param_3,int param_4)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  byte bVar4;\n  char cVar5;\n  char cVar6;\n  undefined1 uVar7;\n  undefined1 uVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  int iVar11;\n  byte ****ppppbVar12;\n  int iVar13;\n  byte ****ppppbVar14;\n  undefined1 *puVar15;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  byte bVar21;\n  undefined4 uVar19;\n  undefined4 *puVar20;\n  int iVar22;\n  uint uVar23;\n  undefined1 *puVar24;\n  byte *pbVar25;\n  byte *pbVar26;\n  int iVar27;\n  uint in_t3;\n  byte *pbVar28;\n  undefined4 *puVar29;\n  uint uVar30;\n  byte *pbVar31;\n  undefined4 *unaff_s1;\n  undefined *unaff_s2;\n  byte *****pppppbVar32;\n  byte *****pppppbVar33;\n  undefined4 *unaff_s3;\n  byte *unaff_s4;\n  byte *pbVar34;\n  byte *****pppppbVar35;\n  byte *****pppppbVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  int *piVar39;\n  code *pcVar40;\n  undefined4 uVar41;\n  byte ****ppppbStack_108;\n  byte ****ppppbStack_e8;\n  byte ****ppppbStack_e4;\n  undefined4 uStack_e0;\n  byte ***pppbStack_c0;\n  int iStack_bc;\n  int iStack_b8;\n  int iStack_b4;\n  byte ****ppppbStack_b0;\n  undefined4 *puStack_ac;\n  byte *pbStack_a8;\n  byte *pbStack_a4;\n  undefined *puStack_a0;\n  int iStack_9c;\n  int iStack_98;\n  undefined4 uStack_94;\n  undefined4 uStack_80;\n  int iStack_7c;\n  undefined *puStack_78;\n  undefined4 uStack_70;\n  byte ***pppbStack_6c;\n  undefined4 *puStack_68;\n  undefined4 *puStack_64;\n  undefined *puStack_60;\n  code *pcStack_5c;\n  undefined4 *local_48;\n  undefined4 *local_44;\n  undefined4 local_34;\n  undefined1 local_30;\n  undefined1 local_2f;\n  undefined1 local_2e;\n  undefined1 local_2d;\n  int local_2c;\n  \n  pppppbVar35 = (byte *****)PTR___stack_chk_guard_000b0c9c;\n  puVar29 = *(undefined4 **)(param_2 + 0x10);\n  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;\n  if (puVar29 != (undefined4 *)0x0) {\n    unaff_s4 = param_1 + 8;\n    unaff_s3 = param_3 + 3;\n    unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;\n    do {\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    } while (puVar29 != (undefined4 *)0x0);\n  }\n  local_34 = *(undefined4 *)(param_2 + 4);\n  param_4 = param_4 - *(int *)(param_2 + 0xc);\n  iVar27 = *(int *)(*(int *)(param_1 + 0xc) + 0x14);\n  local_44 = (undefined4 *)(PTR_DAT_000b01d0 + -0x4224);\n  iVar22 = *(int *)(param_1 + 4);\n  local_30 = (undefined1)((uint)param_4 >> 0x18);\n  local_2e = (undefined1)((uint)param_4 >> 8);\n  local_48 = (undefined4 *)0x8;\n  local_2f = (undefined1)((uint)param_4 >> 0x10);\n  local_2d = (undefined1)param_4;\n  (*(code *)PTR_ssh_send_packet_from_downstream_000b0988)(iVar27,iVar22,0x5d,&local_34);\n  if ((byte ****)local_2c == *pppppbVar35) {\n    return;\n  }\n  pcVar40 = share_xchannel_failure;\n  puVar37 = PTR___stack_chk_fail_000b0c70;\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\n  puStack_78 = puVar37 + 0x40180;\n  uStack_70 = *(undefined4 *)(iVar22 + 4);\n  pbVar25 = &DAT_00000061;\n  pbVar31 = (byte *)&uStack_70;\n  pppppbVar32 = *(byte ******)(puVar37 + 0x38ccc);\n  iStack_7c = *(int *)(puVar37 + 0x38200) + -0x4248;\n  pppbStack_6c = (byte ***)*pppppbVar32;\n  uStack_80 = 4;\n  puStack_68 = puVar29;\n  puStack_64 = unaff_s1;\n  puStack_60 = unaff_s2;\n  pcStack_5c = pcVar40;\n  (**(code **)(puVar37 + 0x389b8))\n            (*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4));\n  *(undefined4 *)(iVar22 + 8) = 0;\n  iVar18 = iVar27;\n  share_dead_xchannel_respond(iVar27,iVar22);\n  if ((byte ****)pppbStack_6c == *pppppbVar32) {\n    return;\n  }\n  pcVar40 = *(code **)(puStack_78 + -0x74e0);\n  uVar41 = 0x7808c;\n  (*pcVar40)();\n  iVar11 = *(int *)(iVar18 + 0x10);\n  piVar39 = *(int **)(pcVar40 + 0x38c10);\n  puStack_a0 = (undefined *)pppppbVar35;\n  iStack_bc = *piVar39;\n  pbVar34 = pbVar31;\n  iStack_b8 = iVar22;\n  iStack_b4 = iVar27;\n  ppppbStack_b0 = (byte ****)pppppbVar32;\n  puStack_ac = unaff_s3;\n  pbStack_a8 = unaff_s4;\n  pbStack_a4 = param_1;\n  iStack_9c = param_4;\n  iStack_98 = param_2;\n  uStack_94 = uVar41;\n  if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar11 != 0) goto LAB_00078210;\n    *(undefined4 *)(iVar18 + 0x4030) = 0;\n  }\n  if (pbVar31 == (byte *)0x0) {\nLAB_000781c4:\n    *(undefined4 *)(iVar18 + 0x10) = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );\n  }\n  uVar30 = *(uint *)(iVar18 + 0x4030);\n  bVar21 = *pbVar25;\n  pbVar34 = pbVar31 + -1;\n  pbVar28 = pbVar25 + 1;\n  if (bVar21 == 10) {\nLAB_0007855c:\n    pbVar25 = pbVar28;\n    if (0x2d < uVar30) {\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }\n    uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }\n  pbVar16 = pbVar31;\n  if (uVar30 < 0x4010) {\n    uVar30 = uVar30 + 1;\n    pbVar26 = pbVar25 + (int)pbVar34;\n    pbVar34 = pbVar31;\n    param_1 = pbVar28;\n    do {\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    } while (uVar30 != 0x4011);\n  }\n  uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc);\n  pbVar34 = pbVar16;\n  pbVar25 = pbVar28;\n  goto LAB_000781e4;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "undefined1 uVar7;" type_identifier identifier ;) (declaration "undefined1 uVar8;" type_identifier identifier ;) (declaration "undefined1 uVar9;" type_identifier identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "byte ****ppppbVar12;" type_identifier (pointer_declarator "****ppppbVar12" * (pointer_declarator "***ppppbVar12" * (pointer_declarator "**ppppbVar12" * (pointer_declarator "*ppppbVar12" * identifier)))) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "byte ****ppppbVar14;" type_identifier (pointer_declarator "****ppppbVar14" * (pointer_declarator "***ppppbVar14" * (pointer_declarator "**ppppbVar14" * (pointer_declarator "*ppppbVar14" * identifier)))) ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "undefined4 uVar19;" type_identifier identifier ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "undefined1 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "byte *pbVar25;" type_identifier (pointer_declarator "*pbVar25" * identifier) ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "uint in_t3;" type_identifier identifier ;) (declaration "byte *pbVar28;" type_identifier (pointer_declarator "*pbVar28" * identifier) ;) (declaration "undefined4 *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "undefined4 *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "undefined *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "byte *****pppppbVar32;" type_identifier (pointer_declarator "*****pppppbVar32" * (pointer_declarator "****pppppbVar32" * (pointer_declarator "***pppppbVar32" * (pointer_declarator "**pppppbVar32" * (pointer_declarator "*pppppbVar32" * identifier))))) ;) (declaration "byte *****pppppbVar33;" type_identifier (pointer_declarator "*****pppppbVar33" * (pointer_declarator "****pppppbVar33" * (pointer_declarator "***pppppbVar33" * (pointer_declarator "**pppppbVar33" * (pointer_declarator "*pppppbVar33" * identifier))))) ;) (declaration "undefined4 *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "byte *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "byte *pbVar34;" type_identifier (pointer_declarator "*pbVar34" * identifier) ;) (declaration "byte *****pppppbVar35;" type_identifier (pointer_declarator "*****pppppbVar35" * (pointer_declarator "****pppppbVar35" * (pointer_declarator "***pppppbVar35" * (pointer_declarator "**pppppbVar35" * (pointer_declarator "*pppppbVar35" * identifier))))) ;) (declaration "byte *****pppppbVar36;" type_identifier (pointer_declarator "*****pppppbVar36" * (pointer_declarator "****pppppbVar36" * (pointer_declarator "***pppppbVar36" * (pointer_declarator "**pppppbVar36" * (pointer_declarator "*pppppbVar36" * identifier))))) ;) (declaration "undefined *puVar37;" type_identifier (pointer_declarator "*puVar37" * identifier) ;) (declaration "code *pcVar38;" type_identifier (pointer_declarator "*pcVar38" * identifier) ;) (declaration "int *piVar39;" primitive_type (pointer_declarator "*piVar39" * identifier) ;) (declaration "code *pcVar40;" type_identifier (pointer_declarator "*pcVar40" * identifier) ;) (declaration "undefined4 uVar41;" type_identifier identifier ;) (declaration "byte ****ppppbStack_108;" type_identifier (pointer_declarator "****ppppbStack_108" * (pointer_declarator "***ppppbStack_108" * (pointer_declarator "**ppppbStack_108" * (pointer_declarator "*ppppbStack_108" * identifier)))) ;) (declaration "byte ****ppppbStack_e8;" type_identifier (pointer_declarator "****ppppbStack_e8" * (pointer_declarator "***ppppbStack_e8" * (pointer_declarator "**ppppbStack_e8" * (pointer_declarator "*ppppbStack_e8" * identifier)))) ;) (declaration "byte ****ppppbStack_e4;" type_identifier (pointer_declarator "****ppppbStack_e4" * (pointer_declarator "***ppppbStack_e4" * (pointer_declarator "**ppppbStack_e4" * (pointer_declarator "*ppppbStack_e4" * identifier)))) ;) (declaration "undefined4 uStack_e0;" type_identifier identifier ;) (declaration "byte ***pppbStack_c0;" type_identifier (pointer_declarator "***pppbStack_c0" * (pointer_declarator "**pppbStack_c0" * (pointer_declarator "*pppbStack_c0" * identifier))) ;) (declaration "int iStack_bc;" primitive_type identifier ;) (declaration "int iStack_b8;" primitive_type identifier ;) (declaration "int iStack_b4;" primitive_type identifier ;) (declaration "byte ****ppppbStack_b0;" type_identifier (pointer_declarator "****ppppbStack_b0" * (pointer_declarator "***ppppbStack_b0" * (pointer_declarator "**ppppbStack_b0" * (pointer_declarator "*ppppbStack_b0" * identifier)))) ;) (declaration "undefined4 *puStack_ac;" type_identifier (pointer_declarator "*puStack_ac" * identifier) ;) (declaration "byte *pbStack_a8;" type_identifier (pointer_declarator "*pbStack_a8" * identifier) ;) (declaration "byte *pbStack_a4;" type_identifier (pointer_declarator "*pbStack_a4" * identifier) ;) (declaration "undefined *puStack_a0;" type_identifier (pointer_declarator "*puStack_a0" * identifier) ;) (declaration "int iStack_9c;" primitive_type identifier ;) (declaration "int iStack_98;" primitive_type identifier ;) (declaration "undefined4 uStack_94;" type_identifier identifier ;) (declaration "undefined4 uStack_80;" type_identifier identifier ;) (declaration "int iStack_7c;" primitive_type identifier ;) (declaration "undefined *puStack_78;" type_identifier (pointer_declarator "*puStack_78" * identifier) ;) (declaration "undefined4 uStack_70;" type_identifier identifier ;) (declaration "byte ***pppbStack_6c;" type_identifier (pointer_declarator "***pppbStack_6c" * (pointer_declarator "**pppbStack_6c" * (pointer_declarator "*pppbStack_6c" * identifier))) ;) (declaration "undefined4 *puStack_68;" type_identifier (pointer_declarator "*puStack_68" * identifier) ;) (declaration "undefined4 *puStack_64;" type_identifier (pointer_declarator "*puStack_64" * identifier) ;) (declaration "undefined *puStack_60;" type_identifier (pointer_declarator "*puStack_60" * identifier) ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "undefined4 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined4 *local_44;" type_identifier (pointer_declarator "*local_44" * identifier) ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined1 local_30;" type_identifier identifier ;) (declaration "undefined1 local_2f;" type_identifier identifier ;) (declaration "undefined1 local_2e;" type_identifier identifier ;) (declaration "undefined1 local_2d;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "pppppbVar35 = (byte *****)PTR___stack_chk_guard_000b0c9c;" (assignment_expression "pppppbVar35 = (byte *****)PTR___stack_chk_guard_000b0c9c" identifier = (cast_expression "(byte *****)PTR___stack_chk_guard_000b0c9c" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (expression_statement "puVar29 = *(undefined4 **)(param_2 + 0x10);" (assignment_expression "puVar29 = *(undefined4 **)(param_2 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(param_2 + 0x10)" * (cast_expression "(undefined4 **)(param_2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000b0c9c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b0c9c" * (cast_expression "(int *)PTR___stack_chk_guard_000b0c9c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (puVar29 != (undefined4 *)0x0) {\n    unaff_s4 = param_1 + 8;\n    unaff_s3 = param_3 + 3;\n    unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;\n    do {\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    } while (puVar29 != (undefined4 *)0x0);\n  }" if (parenthesized_expression "(puVar29 != (undefined4 *)0x0)" ( (binary_expression "puVar29 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    unaff_s4 = param_1 + 8;\n    unaff_s3 = param_3 + 3;\n    unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;\n    do {\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    } while (puVar29 != (undefined4 *)0x0);\n  }" { (expression_statement "unaff_s4 = param_1 + 8;" (assignment_expression "unaff_s4 = param_1 + 8" identifier = (binary_expression "param_1 + 8" identifier + number_literal)) ;) (expression_statement "unaff_s3 = param_3 + 3;" (assignment_expression "unaff_s3 = param_3 + 3" identifier = (binary_expression "param_3 + 3" identifier + number_literal)) ;) (expression_statement "unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;" (assignment_expression "unaff_s2 = PTR_LAB_000b08e8 + 0x68e4" identifier = (binary_expression "PTR_LAB_000b08e8 + 0x68e4" identifier + number_literal)) ;) (do_statement "do {\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    } while (puVar29 != (undefined4 *)0x0);" do (compound_statement "{\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    }" { (expression_statement "iVar27 = puVar29[3];" (assignment_expression "iVar27 = puVar29[3]" identifier = (subscript_expression "puVar29[3]" identifier [ number_literal ])) ;) (expression_statement "puVar24 = (undefined1 *)puVar29[2];" (assignment_expression "puVar24 = (undefined1 *)puVar29[2]" identifier = (cast_expression "(undefined1 *)puVar29[2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar29[2]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined4 *)(param_2 + 0x10) = *puVar29;" (assignment_expression "*(undefined4 *)(param_2 + 0x10) = *puVar29" (pointer_expression "*(undefined4 *)(param_2 + 0x10)" * (cast_expression "(undefined4 *)(param_2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) = (pointer_expression "*puVar29" * identifier)) ;) (if_statement "if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }" if (parenthesized_expression "(3 < iVar27)" ( (binary_expression "3 < iVar27" number_literal < identifier) )) (compound_statement "{\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }" { (expression_statement "*puVar24 = *(undefined1 *)param_3;" (assignment_expression "*puVar24 = *(undefined1 *)param_3" (pointer_expression "*puVar24" * identifier) = (pointer_expression "*(undefined1 *)param_3" * (cast_expression "(undefined1 *)param_3" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;" (assignment_expression "*(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3" (pointer_expression "*(char *)(puVar29[2] + 1)" * (cast_expression "(char *)(puVar29[2] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29[2] + 1)" ( (binary_expression "puVar29[2] + 1" (subscript_expression "puVar29[2]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*(undefined2 *)param_3" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)param_3" * (cast_expression "(undefined2 *)param_3" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "*(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);" (assignment_expression "*(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8)" (pointer_expression "*(char *)(puVar29[2] + 2)" * (cast_expression "(char *)(puVar29[2] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29[2] + 2)" ( (binary_expression "puVar29[2] + 2" (subscript_expression "puVar29[2]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((uint)*param_3 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)*param_3 >> 8)" ( (binary_expression "(uint)*param_3 >> 8" (binary_expression "(uint)*param_3" (parenthesized_expression "(uint)" ( identifier )) * identifier) >> number_literal) )))) ;) (expression_statement "*(char *)(puVar29[2] + 3) = (char)*param_3;" (assignment_expression "*(char *)(puVar29[2] + 3) = (char)*param_3" (pointer_expression "*(char *)(puVar29[2] + 3)" * (cast_expression "(char *)(puVar29[2] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar29[2] + 3)" ( (binary_expression "puVar29[2] + 3" (subscript_expression "puVar29[2]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*param_3" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*param_3" * identifier))) ;) (expression_statement "puVar24 = (undefined1 *)puVar29[2];" (assignment_expression "puVar24 = (undefined1 *)puVar29[2]" identifier = (cast_expression "(undefined1 *)puVar29[2]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar29[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar27 = puVar29[3];" (assignment_expression "iVar27 = puVar29[3]" identifier = (subscript_expression "puVar29[3]" identifier [ number_literal ])) ;) })) (expression_statement "local_48 = param_3;" (assignment_expression "local_48 = param_3" identifier = identifier) ;) (expression_statement "local_44 = unaff_s3;" (assignment_expression "local_44 = unaff_s3" identifier = identifier) ;) (expression_statement "FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);" (call_expression "FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27)" identifier (argument_list "(unaff_s4,puVar29[1],puVar24,iVar27)" ( identifier , (subscript_expression "puVar29[1]" identifier [ number_literal ]) , identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_safefree_000b01b0)(puVar29);" (call_expression "(*(code *)PTR_safefree_000b01b0)(puVar29)" (parenthesized_expression "(*(code *)PTR_safefree_000b01b0)" ( (pointer_expression "*(code *)PTR_safefree_000b01b0" * (cast_expression "(code *)PTR_safefree_000b01b0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar29)" ( identifier ))) ;) (expression_statement "puVar29 = *(undefined4 **)(param_2 + 0x10);" (assignment_expression "puVar29 = *(undefined4 **)(param_2 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(param_2 + 0x10)" * (cast_expression "(undefined4 **)(param_2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "unaff_s1 = param_3;" (assignment_expression "unaff_s1 = param_3" identifier = identifier) ;) }) while (parenthesized_expression "(puVar29 != (undefined4 *)0x0)" ( (binary_expression "puVar29 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "local_34 = *(undefined4 *)(param_2 + 4);" (assignment_expression "local_34 = *(undefined4 *)(param_2 + 4)" identifier = (pointer_expression "*(undefined4 *)(param_2 + 4)" * (cast_expression "(undefined4 *)(param_2 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) ;) (expression_statement "param_4 = param_4 - *(int *)(param_2 + 0xc);" (assignment_expression "param_4 = param_4 - *(int *)(param_2 + 0xc)" identifier = (binary_expression "param_4 - *(int *)(param_2 + 0xc)" identifier - (pointer_expression "*(int *)(param_2 + 0xc)" * (cast_expression "(int *)(param_2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) )))))) ;) (expression_statement "iVar27 = *(int *)(*(int *)(param_1 + 0xc) + 0x14);" (assignment_expression "iVar27 = *(int *)(*(int *)(param_1 + 0xc) + 0x14)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0xc) + 0x14)" * (cast_expression "(int *)(*(int *)(param_1 + 0xc) + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xc) + 0x14)" ( (binary_expression "*(int *)(param_1 + 0xc) + 0x14" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "local_44 = (undefined4 *)(PTR_DAT_000b01d0 + -0x4224);" (assignment_expression "local_44 = (undefined4 *)(PTR_DAT_000b01d0 + -0x4224)" identifier = (cast_expression "(undefined4 *)(PTR_DAT_000b01d0 + -0x4224)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000b01d0 + -0x4224)" ( (binary_expression "PTR_DAT_000b01d0 + -0x4224" identifier + number_literal) )))) ;) (expression_statement "iVar22 = *(int *)(param_1 + 4);" (assignment_expression "iVar22 = *(int *)(param_1 + 4)" identifier = (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_30 = (undefined1)((uint)param_4 >> 0x18);" (assignment_expression "local_30 = (undefined1)((uint)param_4 >> 0x18)" identifier = (call_expression "(undefined1)((uint)param_4 >> 0x18)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)param_4 >> 0x18)" ( (binary_expression "(uint)param_4 >> 0x18" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_2e = (undefined1)((uint)param_4 >> 8);" (assignment_expression "local_2e = (undefined1)((uint)param_4 >> 8)" identifier = (call_expression "(undefined1)((uint)param_4 >> 8)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)param_4 >> 8)" ( (binary_expression "(uint)param_4 >> 8" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_48 = (undefined4 *)0x8;" (assignment_expression "local_48 = (undefined4 *)0x8" identifier = (cast_expression "(undefined4 *)0x8" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2f = (undefined1)((uint)param_4 >> 0x10);" (assignment_expression "local_2f = (undefined1)((uint)param_4 >> 0x10)" identifier = (call_expression "(undefined1)((uint)param_4 >> 0x10)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "((uint)param_4 >> 0x10)" ( (binary_expression "(uint)param_4 >> 0x10" (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_2d = (undefined1)param_4;" (assignment_expression "local_2d = (undefined1)param_4" identifier = (cast_expression "(undefined1)param_4" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;) (expression_statement "(*(code *)PTR_ssh_send_packet_from_downstream_000b0988)(iVar27,iVar22,0x5d,&local_34);" (call_expression "(*(code *)PTR_ssh_send_packet_from_downstream_000b0988)(iVar27,iVar22,0x5d,&local_34)" (parenthesized_expression "(*(code *)PTR_ssh_send_packet_from_downstream_000b0988)" ( (pointer_expression "*(code *)PTR_ssh_send_packet_from_downstream_000b0988" * (cast_expression "(code *)PTR_ssh_send_packet_from_downstream_000b0988" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar27,iVar22,0x5d,&local_34)" ( identifier , identifier , number_literal , (pointer_expression "&local_34" & identifier) ))) ;) (if_statement "if ((byte ****)local_2c == *pppppbVar35) {\n    return;\n  }" if (parenthesized_expression "((byte ****)local_2c == *pppppbVar35)" ( (binary_expression "(byte ****)local_2c == *pppppbVar35" (cast_expression "(byte ****)local_2c" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) == (pointer_expression "*pppppbVar35" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar40 = share_xchannel_failure;" (assignment_expression "pcVar40 = share_xchannel_failure" identifier = identifier) ;) (expression_statement "puVar37 = PTR___stack_chk_fail_000b0c70;" (assignment_expression "puVar37 = PTR___stack_chk_fail_000b0c70" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b0c70)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b0c70)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b0c70)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b0c70" * (cast_expression "(code *)PTR___stack_chk_fail_000b0c70" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_78 = puVar37 + 0x40180;" (assignment_expression "puStack_78 = puVar37 + 0x40180" identifier = (binary_expression "puVar37 + 0x40180" identifier + number_literal)) ;) (expression_statement "uStack_70 = *(undefined4 *)(iVar22 + 4);" (assignment_expression "uStack_70 = *(undefined4 *)(iVar22 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar22 + 4)" * (cast_expression "(undefined4 *)(iVar22 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 4)" ( (binary_expression "iVar22 + 4" identifier + number_literal) ))))) ;) (expression_statement "pbVar25 = &DAT_00000061;" (assignment_expression "pbVar25 = &DAT_00000061" identifier = (pointer_expression "&DAT_00000061" & identifier)) ;) (expression_statement "pbVar31 = (byte *)&uStack_70;" (assignment_expression "pbVar31 = (byte *)&uStack_70" identifier = (cast_expression "(byte *)&uStack_70" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_70" & identifier))) ;) (expression_statement "pppppbVar32 = *(byte ******)(puVar37 + 0x38ccc);" (assignment_expression "pppppbVar32 = *(byte ******)(puVar37 + 0x38ccc)" identifier = (pointer_expression "*(byte ******)(puVar37 + 0x38ccc)" * (cast_expression "(byte ******)(puVar37 + 0x38ccc)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(puVar37 + 0x38ccc)" ( (binary_expression "puVar37 + 0x38ccc" identifier + number_literal) ))))) ;) (expression_statement "iStack_7c = *(int *)(puVar37 + 0x38200) + -0x4248;" (assignment_expression "iStack_7c = *(int *)(puVar37 + 0x38200) + -0x4248" identifier = (binary_expression "*(int *)(puVar37 + 0x38200) + -0x4248" (pointer_expression "*(int *)(puVar37 + 0x38200)" * (cast_expression "(int *)(puVar37 + 0x38200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar37 + 0x38200)" ( (binary_expression "puVar37 + 0x38200" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pppbStack_6c = (byte ***)*pppppbVar32;" (assignment_expression "pppbStack_6c = (byte ***)*pppppbVar32" identifier = (cast_expression "(byte ***)*pppppbVar32" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "*pppppbVar32" * identifier))) ;) (expression_statement "uStack_80 = 4;" (assignment_expression "uStack_80 = 4" identifier = number_literal) ;) (expression_statement "puStack_68 = puVar29;" (assignment_expression "puStack_68 = puVar29" identifier = identifier) ;) (expression_statement "puStack_64 = unaff_s1;" (assignment_expression "puStack_64 = unaff_s1" identifier = identifier) ;) (expression_statement "puStack_60 = unaff_s2;" (assignment_expression "puStack_60 = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar40;" (assignment_expression "pcStack_5c = pcVar40" identifier = identifier) ;) (expression_statement "(**(code **)(puVar37 + 0x389b8))\n            (*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4));" (call_expression "(**(code **)(puVar37 + 0x389b8))\n            (*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4))" (parenthesized_expression "(**(code **)(puVar37 + 0x389b8))" ( (pointer_expression "**(code **)(puVar37 + 0x389b8)" * (pointer_expression "*(code **)(puVar37 + 0x389b8)" * (cast_expression "(code **)(puVar37 + 0x389b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar37 + 0x389b8)" ( (binary_expression "puVar37 + 0x389b8" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4))" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar27 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar27 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar27 + 0xc)" * (cast_expression "(int *)(iVar27 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0xc)" ( (binary_expression "iVar27 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar27 + 4)" * (cast_expression "(undefined4 *)(iVar27 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 4)" ( (binary_expression "iVar27 + 4" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar22 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 8)" * (cast_expression "(undefined4 *)(iVar22 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 8)" ( (binary_expression "iVar22 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar18 = iVar27;" (assignment_expression "iVar18 = iVar27" identifier = identifier) ;) (expression_statement "share_dead_xchannel_respond(iVar27,iVar22);" (call_expression "share_dead_xchannel_respond(iVar27,iVar22)" identifier (argument_list "(iVar27,iVar22)" ( identifier , identifier ))) ;) (if_statement "if ((byte ****)pppbStack_6c == *pppppbVar32) {\n    return;\n  }" if (parenthesized_expression "((byte ****)pppbStack_6c == *pppppbVar32)" ( (binary_expression "(byte ****)pppbStack_6c == *pppppbVar32" (cast_expression "(byte ****)pppbStack_6c" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier) == (pointer_expression "*pppppbVar32" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar40 = *(code **)(puStack_78 + -0x74e0);" (assignment_expression "pcVar40 = *(code **)(puStack_78 + -0x74e0)" identifier = (pointer_expression "*(code **)(puStack_78 + -0x74e0)" * (cast_expression "(code **)(puStack_78 + -0x74e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_78 + -0x74e0)" ( (binary_expression "puStack_78 + -0x74e0" identifier + number_literal) ))))) ;) (expression_statement "uVar41 = 0x7808c;" (assignment_expression "uVar41 = 0x7808c" identifier = number_literal) ;) (expression_statement "(*pcVar40)();" (call_expression "(*pcVar40)()" (parenthesized_expression "(*pcVar40)" ( (pointer_expression "*pcVar40" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "iVar11 = *(int *)(iVar18 + 0x10);" (assignment_expression "iVar11 = *(int *)(iVar18 + 0x10)" identifier = (pointer_expression "*(int *)(iVar18 + 0x10)" * (cast_expression "(int *)(iVar18 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "piVar39 = *(int **)(pcVar40 + 0x38c10);" (assignment_expression "piVar39 = *(int **)(pcVar40 + 0x38c10)" identifier = (pointer_expression "*(int **)(pcVar40 + 0x38c10)" * (cast_expression "(int **)(pcVar40 + 0x38c10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38c10)" ( (binary_expression "pcVar40 + 0x38c10" identifier + number_literal) ))))) ;) (expression_statement "puStack_a0 = (undefined *)pppppbVar35;" (assignment_expression "puStack_a0 = (undefined *)pppppbVar35" identifier = (cast_expression "(undefined *)pppppbVar35" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iStack_bc = *piVar39;" (assignment_expression "iStack_bc = *piVar39" identifier = (pointer_expression "*piVar39" * identifier)) ;) (expression_statement "pbVar34 = pbVar31;" (assignment_expression "pbVar34 = pbVar31" identifier = identifier) ;) (expression_statement "iStack_b8 = iVar22;" (assignment_expression "iStack_b8 = iVar22" identifier = identifier) ;) (expression_statement "iStack_b4 = iVar27;" (assignment_expression "iStack_b4 = iVar27" identifier = identifier) ;) (expression_statement "ppppbStack_b0 = (byte ****)pppppbVar32;" (assignment_expression "ppppbStack_b0 = (byte ****)pppppbVar32" identifier = (cast_expression "(byte ****)pppppbVar32" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "puStack_ac = unaff_s3;" (assignment_expression "puStack_ac = unaff_s3" identifier = identifier) ;) (expression_statement "pbStack_a8 = unaff_s4;" (assignment_expression "pbStack_a8 = unaff_s4" identifier = identifier) ;) (expression_statement "pbStack_a4 = param_1;" (assignment_expression "pbStack_a4 = param_1" identifier = identifier) ;) (expression_statement "iStack_9c = param_4;" (assignment_expression "iStack_9c = param_4" identifier = identifier) ;) (expression_statement "iStack_98 = param_2;" (assignment_expression "iStack_98 = param_2" identifier = identifier) ;) (expression_statement "uStack_94 = uVar41;" (assignment_expression "uStack_94 = uVar41" identifier = identifier) ;) (if_statement "if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar11 != 0) goto LAB_00078210;\n    *(undefined4 *)(iVar18 + 0x4030) = 0;\n  }" if (parenthesized_expression "(iVar11 != 0x709)" ( (binary_expression "iVar11 != 0x709" identifier != number_literal) )) (compound_statement "{\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar11 != 0) goto LAB_00078210;\n    *(undefined4 *)(iVar18 + 0x4030) = 0;\n  }" { (if_statement "if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }" if (parenthesized_expression "(0x709 < iVar11)" ( (binary_expression "0x709 < iVar11" number_literal < identifier) )) (compound_statement "{\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }" { (if_statement "if (iVar11 == 0x72e) goto LAB_000784dc;" if (parenthesized_expression "(iVar11 == 0x72e)" ( (binary_expression "iVar11 == 0x72e" identifier == number_literal) )) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;)) (if_statement "if (iVar11 != 0x73b) goto LAB_00078210;" if (parenthesized_expression "(iVar11 != 0x73b)" ( (binary_expression "iVar11 != 0x73b" identifier != number_literal) )) (goto_statement "goto LAB_00078210;" goto statement_identifier ;)) (goto_statement "goto LAB_00078104;" goto statement_identifier ;) })) (if_statement "if (iVar11 != 0) goto LAB_00078210;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00078210;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (pbVar31 == (byte *)0x0) {\nLAB_000781c4:\n    *(undefined4 *)(iVar18 + 0x10) = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );\n  }" if (parenthesized_expression "(pbVar31 == (byte *)0x0)" ( (binary_expression "pbVar31 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000781c4:\n    *(undefined4 *)(iVar18 + 0x10) = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );\n  }" { (labeled_statement "LAB_000781c4:\n    *(undefined4 *)(iVar18 + 0x10) = 0x709;" statement_identifier : (expression_statement "*(undefined4 *)(iVar18 + 0x10) = 0x709;" (assignment_expression "*(undefined4 *)(iVar18 + 0x10) = 0x709" (pointer_expression "*(undefined4 *)(iVar18 + 0x10)" * (cast_expression "(undefined4 *)(iVar18 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) )))) = number_literal) ;)) (labeled_statement "LAB_00078214:\n    do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );" statement_identifier : (do_statement "do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );" do (compound_statement "{\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    }" { (if_statement "if (iStack_bc == *piVar39) {\n        return;\n      }" if (parenthesized_expression "(iStack_bc == *piVar39)" ( (binary_expression "iStack_bc == *piVar39" identifier == (pointer_expression "*piVar39" * identifier)) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcVar40 + 0x38be4))();" (call_expression "(**(code **)(pcVar40 + 0x38be4))()" (parenthesized_expression "(**(code **)(pcVar40 + 0x38be4))" ( (pointer_expression "**(code **)(pcVar40 + 0x38be4)" * (pointer_expression "*(code **)(pcVar40 + 0x38be4)" * (cast_expression "(code **)(pcVar40 + 0x38be4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38be4)" ( (binary_expression "pcVar40 + 0x38be4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pbVar25 = param_1;" (assignment_expression "pbVar25 = param_1" identifier = identifier) ;) (labeled_statement "LAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;" statement_identifier : (expression_statement "pppbStack_c0 = *ppppbStack_108;" (assignment_expression "pppbStack_c0 = *ppppbStack_108" identifier = (pointer_expression "*ppppbStack_108" * identifier)) ;)) (expression_statement "FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);" (call_expression "FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc)" identifier (argument_list "(iVar18 + 8,100,&pppbStack_c0,4,0,0xc)" ( (binary_expression "iVar18 + 8" identifier + number_literal) , number_literal , (pointer_expression "&pppbStack_c0" & identifier) , number_literal , number_literal , number_literal ))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(pppppbVar35);" (call_expression "(**(code **)(pcVar40 + 0x38124))(pppppbVar35)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(pppppbVar35)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;" statement_identifier : (expression_statement "pbVar31 = pbVar25 + (int)pbVar34;" (assignment_expression "pbVar31 = pbVar25 + (int)pbVar34" identifier = (binary_expression "pbVar25 + (int)pbVar34" identifier + (cast_expression "(int)pbVar34" ( (type_descriptor "int" primitive_type) ) identifier))) ;)) (expression_statement "param_1 = pbVar25;" (assignment_expression "param_1 = pbVar25" identifier = identifier) ;) (do_statement "do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);" do (compound_statement "{\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      }" { (expression_statement "pbVar34 = pbVar31 + (-1 - (int)param_1);" (assignment_expression "pbVar34 = pbVar31 + (-1 - (int)param_1)" identifier = (binary_expression "pbVar31 + (-1 - (int)param_1)" identifier + (parenthesized_expression "(-1 - (int)param_1)" ( (binary_expression "-1 - (int)param_1" number_literal - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }" if (parenthesized_expression "(param_1 == pbVar31)" ( (binary_expression "param_1 == pbVar31" identifier == identifier) )) (compound_statement "{\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }" { (expression_statement "*(undefined4 *)(iVar18 + 0x10) = 0x72e;" (assignment_expression "*(undefined4 *)(iVar18 + 0x10) = 0x72e" (pointer_expression "*(undefined4 *)(iVar18 + 0x10)" * (cast_expression "(undefined4 *)(iVar18 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00078214;" goto statement_identifier ;) })) (expression_statement "iVar27 = *(int *)(iVar18 + 0x4030);" (assignment_expression "iVar27 = *(int *)(iVar18 + 0x4030)" identifier = (pointer_expression "*(int *)(iVar18 + 0x4030)" * (cast_expression "(int *)(iVar18 + 0x4030)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) ))))) ;) (expression_statement "pbVar25 = param_1 + 1;" (assignment_expression "pbVar25 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "iVar22 = iVar27 + 1;" (assignment_expression "iVar22 = iVar27 + 1" identifier = (binary_expression "iVar27 + 1" identifier + number_literal)) ;) (expression_statement "bVar21 = *param_1;" (assignment_expression "bVar21 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "in_t3 = (uint)bVar21;" (assignment_expression "in_t3 = (uint)bVar21" identifier = (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(int *)(iVar18 + 0x4030) = iVar22;" (assignment_expression "*(int *)(iVar18 + 0x4030) = iVar22" (pointer_expression "*(int *)(iVar18 + 0x4030)" * (cast_expression "(int *)(iVar18 + 0x4030)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(iVar18 + iVar27 + 0x20) = bVar21;" (assignment_expression "*(byte *)(iVar18 + iVar27 + 0x20) = bVar21" (pointer_expression "*(byte *)(iVar18 + iVar27 + 0x20)" * (cast_expression "(byte *)(iVar18 + iVar27 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + iVar27 + 0x20)" ( (binary_expression "iVar18 + iVar27 + 0x20" (binary_expression "iVar18 + iVar27" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "param_1 = pbVar25;" (assignment_expression "param_1 = pbVar25" identifier = identifier) ;) }) while (parenthesized_expression "(iVar22 < 4)" ( (binary_expression "iVar22 < 4" identifier < number_literal) )) ;) (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38248))" ( (pointer_expression "**(code **)(pcVar40 + 0x38248)" * (pointer_expression "*(code **)(pcVar40 + 0x38248)" * (cast_expression "(code **)(pcVar40 + 0x38248)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38248)" ( (binary_expression "pcVar40 + 0x38248" identifier + number_literal) ))))) )) (argument_list "(*(int *)(iVar18 + 0x20) + 4)" ( (binary_expression "*(int *)(iVar18 + 0x20) + 4" (pointer_expression "*(int *)(iVar18 + 0x20)" * (cast_expression "(int *)(iVar18 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "*(int *)(iVar18 + 0x1c) = iVar27;" (assignment_expression "*(int *)(iVar18 + 0x1c) = iVar27" (pointer_expression "*(int *)(iVar18 + 0x1c)" * (cast_expression "(int *)(iVar18 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x1c)" ( (binary_expression "iVar18 + 0x1c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }" if (parenthesized_expression "(iVar27 - 5U < 0x400c)" ( (binary_expression "iVar27 - 5U < 0x400c" (binary_expression "iVar27 - 5U" identifier - number_literal) < number_literal) )) (compound_statement "{\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }" { (expression_statement "pppppbVar35 = *(byte ******)(iVar18 + 0x4030);" (assignment_expression "pppppbVar35 = *(byte ******)(iVar18 + 0x4030)" identifier = (pointer_expression "*(byte ******)(iVar18 + 0x4030)" * (cast_expression "(byte ******)(iVar18 + 0x4030)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) ))))) ;) (while_statement "while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }" while (parenthesized_expression "(param_1 = pbVar25, (int)pppppbVar35 < iVar27)" ( (comma_expression "param_1 = pbVar25, (int)pppppbVar35 < iVar27" (assignment_expression "param_1 = pbVar25" identifier = identifier) , (binary_expression "(int)pppppbVar35 < iVar27" (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier) < identifier)) )) (compound_statement "{\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }" { (labeled_statement "LAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }" statement_identifier : (if_statement "if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }" if (parenthesized_expression "(pbVar34 == (byte *)0x0)" ( (binary_expression "pbVar34 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }" { (expression_statement "*(undefined4 *)(iVar18 + 0x10) = 0x73b;" (assignment_expression "*(undefined4 *)(iVar18 + 0x10) = 0x73b" (pointer_expression "*(undefined4 *)(iVar18 + 0x10)" * (cast_expression "(undefined4 *)(iVar18 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pbVar34 = (byte *)0x0;" (assignment_expression "pbVar34 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_00078214;" goto statement_identifier ;) }))) (expression_statement "iVar27 = *(int *)(iVar18 + 0x4030);" (assignment_expression "iVar27 = *(int *)(iVar18 + 0x4030)" identifier = (pointer_expression "*(int *)(iVar18 + 0x4030)" * (cast_expression "(int *)(iVar18 + 0x4030)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) ))))) ;) (expression_statement "pbVar34 = pbVar34 + -1;" (assignment_expression "pbVar34 = pbVar34 + -1" identifier = (binary_expression "pbVar34 + -1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar25;" (assignment_expression "bVar21 = *pbVar25" identifier = (pointer_expression "*pbVar25" * identifier)) ;) (expression_statement "pbVar25 = pbVar25 + 1;" (assignment_expression "pbVar25 = pbVar25 + 1" identifier = (binary_expression "pbVar25 + 1" identifier + number_literal)) ;) (expression_statement "pppppbVar35 = (byte *****)(iVar27 + 1);" (assignment_expression "pppppbVar35 = (byte *****)(iVar27 + 1)" identifier = (cast_expression "(byte *****)(iVar27 + 1)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(iVar27 + 1)" ( (binary_expression "iVar27 + 1" identifier + number_literal) )))) ;) (expression_statement "*(byte ******)(iVar18 + 0x4030) = pppppbVar35;" (assignment_expression "*(byte ******)(iVar18 + 0x4030) = pppppbVar35" (pointer_expression "*(byte ******)(iVar18 + 0x4030)" * (cast_expression "(byte ******)(iVar18 + 0x4030)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(iVar18 + iVar27 + 0x20) = bVar21;" (assignment_expression "*(byte *)(iVar18 + iVar27 + 0x20) = bVar21" (pointer_expression "*(byte *)(iVar18 + iVar27 + 0x20)" * (cast_expression "(byte *)(iVar18 + iVar27 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + iVar27 + 0x20)" ( (binary_expression "iVar18 + iVar27 + 0x20" (binary_expression "iVar18 + iVar27" identifier + identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar27 = *(int *)(iVar18 + 0x1c);" (assignment_expression "iVar27 = *(int *)(iVar18 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar18 + 0x1c)" * (cast_expression "(int *)(iVar18 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x1c)" ( (binary_expression "iVar18 + 0x1c" identifier + number_literal) ))))) ;) })) (expression_statement "bVar21 = *(byte *)(iVar18 + 0x24);" (assignment_expression "bVar21 = *(byte *)(iVar18 + 0x24)" identifier = (pointer_expression "*(byte *)(iVar18 + 0x24)" * (cast_expression "(byte *)(iVar18 + 0x24)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x24)" ( (binary_expression "iVar18 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "iVar27 = iVar18 + 0x25;" (assignment_expression "iVar27 = iVar18 + 0x25" identifier = (binary_expression "iVar18 + 0x25" identifier + number_literal)) ;) (expression_statement "pbVar31 = (byte *)((int)pppppbVar35 + -5);" (assignment_expression "pbVar31 = (byte *)((int)pppppbVar35 + -5)" identifier = (cast_expression "(byte *)((int)pppppbVar35 + -5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar35 + -5)" ( (binary_expression "(int)pppppbVar35 + -5" (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }" if (parenthesized_expression "(bVar21 != 0x5a)" ( (binary_expression "bVar21 != 0x5a" identifier != number_literal) )) (compound_statement "{\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }" { (if_statement "if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }" if (parenthesized_expression "(bVar21 < 0x5b)" ( (binary_expression "bVar21 < 0x5b" identifier < number_literal) )) (compound_statement "{\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }" { (if_statement "if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }" if (parenthesized_expression "(bVar21 != 2)" ( (binary_expression "bVar21 != 2" identifier != number_literal) )) (compound_statement "{\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }" { (if_statement "if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }" if (parenthesized_expression "(2 < bVar21)" ( (binary_expression "2 < bVar21" number_literal < identifier) )) (compound_statement "{\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }" { (if_statement "if (bVar21 == 4) goto LAB_00078844;" if (parenthesized_expression "(bVar21 == 4)" ( (binary_expression "bVar21 == 4" identifier == number_literal) )) (goto_statement "goto LAB_00078844;" goto statement_identifier ;)) (if_statement "if (bVar21 != 0x50) goto LAB_0007878c;" if (parenthesized_expression "(bVar21 != 0x50)" ( (binary_expression "bVar21 != 0x50" identifier != number_literal) )) (goto_statement "goto LAB_0007878c;" goto statement_identifier ;)) (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) ))))) ;) (expression_statement "pppppbVar33 = pppppbVar32;" (assignment_expression "pppppbVar33 = pppppbVar32" identifier = identifier) ;) (if_statement "if ((int)pbVar31 < 4) goto LAB_0007882c;" if (parenthesized_expression "((int)pbVar31 < 4)" ( (binary_expression "(int)pbVar31 < 4" (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0007882c;" goto statement_identifier ;)) (expression_statement "pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);" (assignment_expression "pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0)" identifier = (cast_expression "(byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(*(int *)(pcVar40 + 0x3885c) + 0x6af0)" ( (binary_expression "*(int *)(pcVar40 + 0x3885c) + 0x6af0" (pointer_expression "*(int *)(pcVar40 + 0x3885c)" * (cast_expression "(int *)(pcVar40 + 0x3885c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x3885c)" ( (binary_expression "pcVar40 + 0x3885c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);" (assignment_expression "iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0)" identifier = (call_expression "FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0)" identifier (argument_list "(iVar27,pbVar31,&ppppbStack_e8,0)" ( identifier , identifier , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal )))) ;) (expression_statement "ppppbVar12 = ppppbStack_e8;" (assignment_expression "ppppbVar12 = ppppbStack_e8" identifier = identifier) ;) (if_statement "if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;" if (parenthesized_expression "((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))" ( (binary_expression "(iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0)" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "((byte *****)ppppbStack_e8 == (byte *****)0x0)" ( (binary_expression "(byte *****)ppppbStack_e8 == (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ))) )) (goto_statement "goto LAB_00078828;" goto statement_identifier ;)) (expression_statement "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);" (assignment_expression "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38c4c))" ( (pointer_expression "**(code **)(pcVar40 + 0x38c4c)" * (pointer_expression "*(code **)(pcVar40 + 0x38c4c)" * (cast_expression "(code **)(pcVar40 + 0x38c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38c4c)" ( (binary_expression "pcVar40 + 0x38c4c" identifier + number_literal) ))))) )) (argument_list "(ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860)" ( identifier , (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x4860" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" * (cast_expression "(int *)(pcVar40 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x380fc)" ( (binary_expression "pcVar40 + 0x380fc" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }" { (expression_statement "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);" (assignment_expression "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38c4c))" ( (pointer_expression "**(code **)(pcVar40 + 0x38c4c)" * (pointer_expression "*(code **)(pcVar40 + 0x38c4c)" * (cast_expression "(code **)(pcVar40 + 0x38c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38c4c)" ( (binary_expression "pcVar40 + 0x38c4c" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc)" ( identifier , (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x47cc" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" * (cast_expression "(int *)(pcVar40 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x380fc)" ( (binary_expression "pcVar40 + 0x380fc" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38124);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38124)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) ;) (expression_statement "pppppbVar32 = pppppbVar33;" (assignment_expression "pppppbVar32 = pppppbVar33" identifier = identifier) ;) (if_statement "if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }" { (expression_statement "(*pcVar38)(ppppbVar12);" (call_expression "(*pcVar38)(ppppbVar12)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(ppppbVar12)" ( identifier ))) ;) (expression_statement "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);" (assignment_expression "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" identifier = (call_expression "FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" identifier (argument_list "(iVar27,pbVar31,0,&ppppbStack_e8)" ( identifier , identifier , number_literal , (pointer_expression "&ppppbStack_e8" & identifier) )))) ;) (expression_statement "pppppbVar36 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar36 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }" if (parenthesized_expression "(((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31))" ( (binary_expression "((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)" (parenthesized_expression "((iVar22 != 0) && (-1 < (int)ppppbStack_e8))" ( (binary_expression "(iVar22 != 0) && (-1 < (int)ppppbStack_e8)" (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) && (parenthesized_expression "(-1 < (int)ppppbStack_e8)" ( (binary_expression "-1 < (int)ppppbStack_e8" number_literal < (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "(pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)" ( (comma_expression "pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31" (assignment_expression "pbVar28 = (byte *)((int)ppppbStack_e8 + 1)" identifier = (cast_expression "(byte *)((int)ppppbStack_e8 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppbStack_e8 + 1)" ( (binary_expression "(int)ppppbStack_e8 + 1" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "(int)ppppbStack_e8 < (int)pbVar31" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }" { (expression_statement "ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);" (assignment_expression "ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27)" identifier = (cast_expression "(byte ****)((int)ppppbStack_e8 + iVar27)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbStack_e8 + iVar27)" ( (binary_expression "(int)ppppbStack_e8 + iVar27" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar11 = (int)pbVar31 - (int)pbVar28;" (assignment_expression "iVar11 = (int)pbVar31 - (int)pbVar28" identifier = (binary_expression "(int)pbVar31 - (int)pbVar28" (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "bVar21 = *(byte *)ppppbStack_108;" (assignment_expression "bVar21 = *(byte *)ppppbStack_108" identifier = (pointer_expression "*(byte *)ppppbStack_108" * (cast_expression "(byte *)ppppbStack_108" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }" if (parenthesized_expression "((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0))" ( (binary_expression "(iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)" (parenthesized_expression "(iVar11 < 4)" ( (binary_expression "iVar11 < 4" identifier < number_literal) )) || (parenthesized_expression "(iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)" ( (comma_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0" (assignment_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" identifier = (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" identifier (argument_list "(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" ( (binary_expression "pbVar28 + iVar27" identifier + identifier) , identifier , number_literal , (pointer_expression "&ppppbStack_e8" & identifier) )))) , (binary_expression "iVar22 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }" { (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) ))))) ;) (if_statement "if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }" if (parenthesized_expression "((int)pppppbVar36 < (int)(pppppbVar35 + -2))" ( (binary_expression "(int)pppppbVar36 < (int)(pppppbVar35 + -2)" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(pppppbVar35 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pppppbVar35 + -2)" ( (binary_expression "pppppbVar35 + -2" identifier + number_literal) )))) )) (compound_statement "{\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }" { (if_statement "if (iVar11 >= 4) goto LAB_000783d4;" if (parenthesized_expression "(iVar11 >= 4)" ( (binary_expression "iVar11 >= 4" identifier >= number_literal) )) (goto_statement "goto LAB_000783d4;" goto statement_identifier ;)) (labeled_statement "LAB_0007901c:\n                          uVar41 = 0x5a7;" statement_identifier : (expression_statement "uVar41 = 0x5a7;" (assignment_expression "uVar41 = 0x5a7" identifier = number_literal) ;)) (goto_statement "goto LAB_00079020;" goto statement_identifier ;) })) }) (else_clause "else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }" else (compound_statement "{\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }" { (expression_statement "pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);" (assignment_expression "pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8)" identifier = (cast_expression "(byte *****)(pbVar28 + (int)ppppbStack_e8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(pbVar28 + (int)ppppbStack_e8)" ( (binary_expression "pbVar28 + (int)ppppbStack_e8" identifier + (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) ))))) ;) (if_statement "if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }" if (parenthesized_expression "(-1 < (int)pppppbVar36)" ( (binary_expression "-1 < (int)pppppbVar36" number_literal < (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }" { (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38158);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38158)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) ;) (if_statement "if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;" if (parenthesized_expression "((int)(pppppbVar35 + -2) <= (int)pppppbVar36)" ( (binary_expression "(int)(pppppbVar35 + -2) <= (int)pppppbVar36" (cast_expression "(int)(pppppbVar35 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pppppbVar35 + -2)" ( (binary_expression "pppppbVar35 + -2" identifier + number_literal) ))) <= (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00078830;" goto statement_identifier ;)) (labeled_statement "LAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);" statement_identifier : (expression_statement "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);" (assignment_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" identifier = (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" identifier (argument_list "(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" ( (binary_expression "pbVar28 + iVar27" identifier + identifier) , identifier , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal )))) ;)) (expression_statement "pppppbVar32 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar32 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;" if (parenthesized_expression "((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0))" ( (binary_expression "(iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "(pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)" ( (comma_expression "pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0" (assignment_expression "pppppbVar33 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) , (binary_expression "(byte *****)ppppbStack_e8 == (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal))) ))) )) (goto_statement "goto LAB_0007901c;" goto statement_identifier ;)) (expression_statement "pbVar28 = (byte *)((int)pppppbVar36 + iVar27);" (assignment_expression "pbVar28 = (byte *)((int)pppppbVar36 + iVar27)" identifier = (cast_expression "(byte *)((int)pppppbVar36 + iVar27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar36 + iVar27)" ( (binary_expression "(int)pppppbVar36 + iVar27" (cast_expression "(int)pppppbVar36" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "bVar1 = *pbVar28;" (assignment_expression "bVar1 = *pbVar28" identifier = (pointer_expression "*pbVar28" * identifier)) ;) (expression_statement "bVar2 = pbVar28[1];" (assignment_expression "bVar2 = pbVar28[1]" identifier = (subscript_expression "pbVar28[1]" identifier [ number_literal ])) ;) (expression_statement "bVar3 = pbVar28[3];" (assignment_expression "bVar3 = pbVar28[3]" identifier = (subscript_expression "pbVar28[3]" identifier [ number_literal ])) ;) (expression_statement "bVar4 = pbVar28[2];" (assignment_expression "bVar4 = pbVar28[2]" identifier = (subscript_expression "pbVar28[2]" identifier [ number_literal ])) ;) (expression_statement "ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;" (assignment_expression "ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)" identifier = (cast_expression "(byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38164))" ( (pointer_expression "**(code **)(pcVar40 + 0x38164)" * (pointer_expression "*(code **)(pcVar40 + 0x38164)" * (cast_expression "(code **)(pcVar40 + 0x38164)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38164)" ( (binary_expression "pcVar40 + 0x38164" identifier + number_literal) ))))) )) (argument_list "(ppppbStack_e8)" ( identifier ))))) ;) (expression_statement "ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);" (assignment_expression "ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8)" identifier = (cast_expression "(byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8)" ( (binary_expression "(uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8" (binary_expression "(uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10" (binary_expression "(uint)bVar1 << 0x18 | (uint)bVar3" (binary_expression "(uint)bVar1 << 0x18" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal) | (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) | (binary_expression "(uint)bVar2 << 0x10" (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal)) | (binary_expression "(uint)bVar4 << 8" (cast_expression "(uint)bVar4" ( (type_descriptor "uint" type_identifier) ) identifier) << number_literal)) )))) ;) (expression_statement "pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);" (assignment_expression "pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0)" identifier = (cast_expression "(byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (call_expression "find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x4048)" * (cast_expression "(undefined4 *)(iVar18 + 0x4048)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4048)" ( (binary_expression "iVar18 + 0x4048" identifier + number_literal) )))) , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal ))))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbStack_e8)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(ppppbStack_e8)" ( identifier ))) ;) (if_statement "if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }" if (parenthesized_expression "(pppppbVar35 == (byte *****)0x0)" ( (binary_expression "pppppbVar35 == (byte *****)0x0" identifier == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }" { (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38124);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38124)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) ;) (if_statement "if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }" if (parenthesized_expression "(bVar21 != 0)" ( (binary_expression "bVar21 != 0" identifier != number_literal) )) (compound_statement "{\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }" { (expression_statement "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);" (call_expression "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc)" identifier (argument_list "(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc)" ( (binary_expression "iVar18 + 8" identifier + number_literal) , number_literal , (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x2d54" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" * (cast_expression "(int *)(pcVar40 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x380fc)" ( (binary_expression "pcVar40 + 0x380fc" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , number_literal ))) ;) (goto_statement "goto LAB_000784c4;" goto statement_identifier ;) })) }) (else_clause "else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }" else (compound_statement "{\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }" { (expression_statement "bVar21 = *(byte *)ppppbStack_108;" (assignment_expression "bVar21 = *(byte *)ppppbStack_108" identifier = (pointer_expression "*(byte *)ppppbStack_108" * (cast_expression "(byte *)ppppbStack_108" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(byte *)ppppbStack_108 = 1;" (assignment_expression "*(byte *)ppppbStack_108 = 1" (pointer_expression "*(byte *)ppppbStack_108" * (cast_expression "(byte *)ppppbStack_108" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (if_statement "if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }" if (parenthesized_expression "(bVar21 == 0)" ( (binary_expression "bVar21 == 0" identifier == number_literal) )) (compound_statement "{\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }" { (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec" identifier = (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x41ec" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                              iVar22 = 0;\n                            }" else (compound_statement "{\n                              iVar22 = 0;\n                            }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) }))) (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar40 + 0x388fc)" * (pointer_expression "*(code **)(pcVar40 + 0x388fc)" * (cast_expression "(code **)(pcVar40 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x388fc)" ( (binary_expression "pcVar40 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar18 + 4)" * (cast_expression "(undefined4 *)(iVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);" (call_expression "(**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38910))" ( (pointer_expression "**(code **)(pcVar40 + 0x38910)" * (pointer_expression "*(code **)(pcVar40 + 0x38910)" * (cast_expression "(code **)(pcVar40 + 0x38910)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38910)" ( (binary_expression "pcVar40 + 0x38910" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier ))) ;) (labeled_statement "LAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);" statement_identifier : (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38124);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38124)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) ;)) }))) (expression_statement "(*pcVar38)(pppppbVar32);" (call_expression "(*pcVar38)(pppppbVar32)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(pppppbVar32)" ( identifier ))) ;) (goto_statement "goto LAB_000784d4;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_0007882c;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }" else (compound_statement "{\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }" { (labeled_statement "LAB_00079040:\n                    (*pcVar38)();" statement_identifier : (expression_statement "(*pcVar38)();" (call_expression "(*pcVar38)()" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "()" ( ))) ;)) (expression_statement "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);" (assignment_expression "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" identifier = (call_expression "FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" identifier (argument_list "(iVar27,pbVar31,0,&ppppbStack_e8)" ( identifier , identifier , number_literal , (pointer_expression "&ppppbStack_e8" & identifier) )))) ;) (expression_statement "pppppbVar33 = pppppbVar32;" (assignment_expression "pppppbVar33 = pppppbVar32" identifier = identifier) ;) (if_statement "if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }" if (parenthesized_expression "(((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31))" ( (binary_expression "((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)" (parenthesized_expression "((iVar22 != 0) && (-1 < (int)ppppbStack_e8))" ( (binary_expression "(iVar22 != 0) && (-1 < (int)ppppbStack_e8)" (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) && (parenthesized_expression "(-1 < (int)ppppbStack_e8)" ( (binary_expression "-1 < (int)ppppbStack_e8" number_literal < (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "((int)ppppbStack_e8 < (int)pbVar31)" ( (binary_expression "(int)ppppbStack_e8 < (int)pbVar31" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }" { (if_statement "if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;" if (parenthesized_expression "(*(byte *)((int)ppppbStack_e8 + iVar27) == 0)" ( (binary_expression "*(byte *)((int)ppppbStack_e8 + iVar27) == 0" (pointer_expression "*(byte *)((int)ppppbStack_e8 + iVar27)" * (cast_expression "(byte *)((int)ppppbStack_e8 + iVar27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppbStack_e8 + iVar27)" ( (binary_expression "(int)ppppbStack_e8 + iVar27" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) == number_literal) )) (goto_statement "goto LAB_000784d4;" goto statement_identifier ;)) (expression_statement "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);" (call_expression "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc)" identifier (argument_list "(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc)" ( (binary_expression "iVar18 + 8" identifier + number_literal) , number_literal , (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x2d54" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" * (cast_expression "(int *)(pcVar40 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x380fc)" ( (binary_expression "pcVar40 + 0x380fc" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , number_literal ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);" statement_identifier : (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0007882c;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbVar12);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12)" ( identifier ))) ;) (expression_statement "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);" (assignment_expression "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" identifier = (call_expression "FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" identifier (argument_list "(iVar27,pbVar31,0,&ppppbStack_e8)" ( identifier , identifier , number_literal , (pointer_expression "&ppppbStack_e8" & identifier) )))) ;) (expression_statement "pppppbVar32 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar32 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;" if (parenthesized_expression "(((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))" ( (binary_expression "((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8)" (parenthesized_expression "((iVar22 == 0) || ((int)ppppbStack_e8 < 0))" ( (binary_expression "(iVar22 == 0) || ((int)ppppbStack_e8 < 0)" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "((int)ppppbStack_e8 < 0)" ( (binary_expression "(int)ppppbStack_e8 < 0" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) || (parenthesized_expression "(pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8)" ( (comma_expression "pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8" (assignment_expression "pbVar28 = (byte *)((int)ppppbStack_e8 + 1)" identifier = (cast_expression "(byte *)((int)ppppbStack_e8 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppbStack_e8 + 1)" ( (binary_expression "(int)ppppbStack_e8 + 1" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "(int)pbVar31 <= (int)ppppbStack_e8" (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (goto_statement "goto LAB_00078828;" goto statement_identifier ;)) (expression_statement "pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);" (assignment_expression "pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27)" identifier = (cast_expression "(byte *)((int)ppppbStack_e8 + iVar27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppbStack_e8 + iVar27)" ( (binary_expression "(int)ppppbStack_e8 + iVar27" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar11 = (int)pbVar31 - (int)pbVar28;" (assignment_expression "iVar11 = (int)pbVar31 - (int)pbVar28" identifier = (binary_expression "(int)pbVar31 - (int)pbVar28" (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "ppppbStack_108 = (byte ****)(uint)*pbVar16;" (assignment_expression "ppppbStack_108 = (byte ****)(uint)*pbVar16" identifier = (binary_expression "(byte ****)(uint)*pbVar16" (cast_expression "(byte ****)(uint)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier)) ;) (if_statement "if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }" if (parenthesized_expression "((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0))" ( (binary_expression "(iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)" (parenthesized_expression "(iVar11 < 4)" ( (binary_expression "iVar11 < 4" identifier < number_literal) )) || (parenthesized_expression "(iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)" ( (comma_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0" (assignment_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" identifier = (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" identifier (argument_list "(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" ( (binary_expression "pbVar28 + iVar27" identifier + identifier) , identifier , number_literal , (pointer_expression "&ppppbStack_e8" & identifier) )))) , (binary_expression "iVar22 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }" { (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) ))))) ;) (if_statement "if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }" if (parenthesized_expression "((int)pppppbVar32 < (int)(pppppbVar35 + -2))" ( (binary_expression "(int)pppppbVar32 < (int)(pppppbVar35 + -2)" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(pppppbVar35 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pppppbVar35 + -2)" ( (binary_expression "pppppbVar35 + -2" identifier + number_literal) )))) )) (compound_statement "{\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }" { (if_statement "if (iVar11 >= 4) goto LAB_0007918c;" if (parenthesized_expression "(iVar11 >= 4)" ( (binary_expression "iVar11 >= 4" identifier >= number_literal) )) (goto_statement "goto LAB_0007918c;" goto statement_identifier ;)) (labeled_statement "LAB_00079434:\n                    uVar41 = 0x55e;" statement_identifier : (expression_statement "uVar41 = 0x55e;" (assignment_expression "uVar41 = 0x55e" identifier = number_literal) ;)) (labeled_statement "LAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);" statement_identifier : (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38a34);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38a34)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38a34)" * (cast_expression "(code **)(pcVar40 + 0x38a34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38a34)" ( (binary_expression "pcVar40 + 0x38a34" identifier + number_literal) ))))) ;)) (expression_statement "(*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);" (call_expression "(*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x4124" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x42c4" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier , (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3e30" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pppppbVar32 = pppppbVar33;" (assignment_expression "pppppbVar32 = pppppbVar33" identifier = identifier) ;) (goto_statement "goto LAB_00079040;" goto statement_identifier ;) })) (labeled_statement "LAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);" statement_identifier : (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38158);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38158)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }" else (compound_statement "{\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }" { (expression_statement "pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);" (assignment_expression "pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8)" identifier = (cast_expression "(byte *****)(pbVar28 + (int)ppppbStack_e8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(pbVar28 + (int)ppppbStack_e8)" ( (binary_expression "pbVar28 + (int)ppppbStack_e8" identifier + (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) ))))) ;) (if_statement "if ((int)pppppbVar32 < 0) goto LAB_0007882c;" if (parenthesized_expression "((int)pppppbVar32 < 0)" ( (binary_expression "(int)pppppbVar32 < 0" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0007882c;" goto statement_identifier ;)) (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38158);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38158)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) ;) (if_statement "if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }" if (parenthesized_expression "((int)pppppbVar32 < (int)(pppppbVar35 + -2))" ( (binary_expression "(int)pppppbVar32 < (int)(pppppbVar35 + -2)" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(pppppbVar35 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pppppbVar35 + -2)" ( (binary_expression "pppppbVar35 + -2" identifier + number_literal) )))) )) (compound_statement "{\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }" { (labeled_statement "LAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);" statement_identifier : (expression_statement "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);" (assignment_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" identifier = (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" identifier (argument_list "(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" ( (binary_expression "pbVar28 + iVar27" identifier + identifier) , identifier , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal )))) ;)) (expression_statement "ppppbVar12 = ppppbStack_e8;" (assignment_expression "ppppbVar12 = ppppbStack_e8" identifier = identifier) ;) (if_statement "if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;" if (parenthesized_expression "((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0))" ( (binary_expression "(iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "(pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)" ( (comma_expression "pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0" (assignment_expression "pppppbVar35 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) , (binary_expression "(byte *****)ppppbStack_e8 == (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal))) ))) )) (goto_statement "goto LAB_00079434;" goto statement_identifier ;)) (expression_statement "pbVar28 = (byte *)((int)pppppbVar32 + iVar27);" (assignment_expression "pbVar28 = (byte *)((int)pppppbVar32 + iVar27)" identifier = (cast_expression "(byte *)((int)pppppbVar32 + iVar27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar32 + iVar27)" ( (binary_expression "(int)pppppbVar32 + iVar27" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);" (assignment_expression "pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8)" identifier = (cast_expression "(byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8)" ( (binary_expression "(uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8" (binary_expression "(uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10" (binary_expression "(uint)*pbVar28 << 0x18 | (uint)pbVar28[3]" (binary_expression "(uint)*pbVar28 << 0x18" (binary_expression "(uint)*pbVar28" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal) | (cast_expression "(uint)pbVar28[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar28[3]" identifier [ number_literal ]))) | (binary_expression "(uint)pbVar28[1] << 0x10" (cast_expression "(uint)pbVar28[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar28[1]" identifier [ number_literal ])) << number_literal)) | (binary_expression "(uint)pbVar28[2] << 8" (cast_expression "(uint)pbVar28[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar28[2]" identifier [ number_literal ])) << number_literal)) )))) ;) (expression_statement "iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);" (assignment_expression "iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38928))" ( (pointer_expression "**(code **)(pcVar40 + 0x38928)" * (pointer_expression "*(code **)(pcVar40 + 0x38928)" * (cast_expression "(code **)(pcVar40 + 0x38928)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38928)" ( (binary_expression "pcVar40 + 0x38928" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }" { (if_statement "if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }" if (parenthesized_expression "((byte *****)ppppbStack_108 != (byte *****)0x0)" ( (binary_expression "(byte *****)ppppbStack_108 != (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) != (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }" { (expression_statement "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);" (call_expression "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc)" identifier (argument_list "(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc)" ( (binary_expression "iVar18 + 8" identifier + number_literal) , number_literal , (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x2d54" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" * (cast_expression "(int *)(pcVar40 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x380fc)" ( (binary_expression "pcVar40 + 0x380fc" identifier + number_literal) )))) + number_literal) , number_literal , number_literal , number_literal ))) ;) })) }) (else_clause "else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }" else (compound_statement "{\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }" { (expression_statement "bVar21 = *pbVar16;" (assignment_expression "bVar21 = *pbVar16" identifier = (pointer_expression "*pbVar16" * identifier)) ;) (expression_statement "*pbVar16 = 1;" (assignment_expression "*pbVar16 = 1" (pointer_expression "*pbVar16" * identifier) = number_literal) ;) (if_statement "if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }" if (parenthesized_expression "(bVar21 == 0)" ( (binary_expression "bVar21 == 0" identifier == number_literal) )) (compound_statement "{\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }" { (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec" identifier = (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x41ec" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n                        iVar22 = 0;\n                      }" else (compound_statement "{\n                        iVar22 = 0;\n                      }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) }))) (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar40 + 0x388fc)" * (pointer_expression "*(code **)(pcVar40 + 0x388fc)" * (cast_expression "(code **)(pcVar40 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x388fc)" ( (binary_expression "pcVar40 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar18 + 4)" * (cast_expression "(undefined4 *)(iVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);" (assignment_expression "puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar40 + 0x3815c))(1,0xc)" (parenthesized_expression "(**(code **)(pcVar40 + 0x3815c))" ( (pointer_expression "**(code **)(pcVar40 + 0x3815c)" * (pointer_expression "*(code **)(pcVar40 + 0x3815c)" * (cast_expression "(code **)(pcVar40 + 0x3815c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x3815c)" ( (binary_expression "pcVar40 + 0x3815c" identifier + number_literal) ))))) )) (argument_list "(1,0xc)" ( number_literal , number_literal ))))) ;) (expression_statement "uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);" (assignment_expression "uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38164))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38164))" ( (pointer_expression "**(code **)(pcVar40 + 0x38164)" * (pointer_expression "*(code **)(pcVar40 + 0x38164)" * (cast_expression "(code **)(pcVar40 + 0x38164)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38164)" ( (binary_expression "pcVar40 + 0x38164" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12)" ( identifier )))) ;) (expression_statement "uVar19 = *(undefined4 *)(iVar18 + 0x4048);" (assignment_expression "uVar19 = *(undefined4 *)(iVar18 + 0x4048)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x4048)" * (cast_expression "(undefined4 *)(iVar18 + 0x4048)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4048)" ( (binary_expression "iVar18 + 0x4048" identifier + number_literal) ))))) ;) (expression_statement "*puVar29 = uVar41;" (assignment_expression "*puVar29 = uVar41" (pointer_expression "*puVar29" * identifier) = identifier) ;) (expression_statement "puVar29[1] = pppppbVar32;" (assignment_expression "puVar29[1] = pppppbVar32" (subscript_expression "puVar29[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar29[2] = 0;" (assignment_expression "puVar29[2] = 0" (subscript_expression "puVar29[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar17 = (undefined4 *)add234(uVar19,puVar29);" (assignment_expression "puVar17 = (undefined4 *)add234(uVar19,puVar29)" identifier = (cast_expression "(undefined4 *)add234(uVar19,puVar29)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "add234(uVar19,puVar29)" identifier (argument_list "(uVar19,puVar29)" ( identifier , identifier ))))) ;) (if_statement "if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }" if (parenthesized_expression "(puVar29 == puVar17)" ( (binary_expression "puVar29 == puVar17" identifier == identifier) )) (compound_statement "{\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }" { (expression_statement "(**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);" (call_expression "(**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38910))" ( (pointer_expression "**(code **)(pcVar40 + 0x38910)" * (pointer_expression "*(code **)(pcVar40 + 0x38910)" * (cast_expression "(code **)(pcVar40 + 0x38910)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38910)" ( (binary_expression "pcVar40 + 0x38910" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier ))) ;) (expression_statement "puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);" (assignment_expression "puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10)" identifier = (cast_expression "(undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar40 + 0x3815c))(1,0x10)" (parenthesized_expression "(**(code **)(pcVar40 + 0x3815c))" ( (pointer_expression "**(code **)(pcVar40 + 0x3815c)" * (pointer_expression "*(code **)(pcVar40 + 0x3815c)" * (cast_expression "(code **)(pcVar40 + 0x3815c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x3815c)" ( (binary_expression "pcVar40 + 0x3815c" identifier + number_literal) ))))) )) (argument_list "(1,0x10)" ( number_literal , number_literal ))))) ;) (expression_statement "puVar20 = *(undefined4 **)(iVar18 + 0x4050);" (assignment_expression "puVar20 = *(undefined4 **)(iVar18 + 0x4050)" identifier = (pointer_expression "*(undefined4 **)(iVar18 + 0x4050)" * (cast_expression "(undefined4 **)(iVar18 + 0x4050)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 0x4050)" ( (binary_expression "iVar18 + 0x4050" identifier + number_literal) ))))) ;) (expression_statement "*puVar17 = 0;" (assignment_expression "*puVar17 = 0" (pointer_expression "*puVar17" * identifier) = number_literal) ;) (if_statement "if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }" if (parenthesized_expression "(puVar20 == (undefined4 *)0x0)" ( (binary_expression "puVar20 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }" { (expression_statement "*(undefined4 **)(iVar18 + 0x404c) = puVar17;" (assignment_expression "*(undefined4 **)(iVar18 + 0x404c) = puVar17" (pointer_expression "*(undefined4 **)(iVar18 + 0x404c)" * (cast_expression "(undefined4 **)(iVar18 + 0x404c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 0x404c)" ( (binary_expression "iVar18 + 0x404c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                          *puVar20 = puVar17;\n                        }" else (compound_statement "{\n                          *puVar20 = puVar17;\n                        }" { (expression_statement "*puVar20 = puVar17;" (assignment_expression "*puVar20 = puVar17" (pointer_expression "*puVar20" * identifier) = identifier) ;) }))) (expression_statement "puVar17[3] = puVar29;" (assignment_expression "puVar17[3] = puVar29" (subscript_expression "puVar17[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar17[1] = 0;" (assignment_expression "puVar17[1] = 0" (subscript_expression "puVar17[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar17[2] = ppppbStack_108;" (assignment_expression "puVar17[2] = ppppbStack_108" (subscript_expression "puVar17[2]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }" else (compound_statement "{\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }" { (expression_statement "(**(code **)(pcVar40 + 0x38124))(puVar29);" (call_expression "(**(code **)(pcVar40 + 0x38124))(puVar29)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(puVar29)" ( identifier ))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);" (call_expression "(**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38910))" ( (pointer_expression "**(code **)(pcVar40 + 0x38910)" * (pointer_expression "*(code **)(pcVar40 + 0x38910)" * (cast_expression "(code **)(pcVar40 + 0x38910)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38910)" ( (binary_expression "pcVar40 + 0x38910" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier ))) ;) }))) }))) (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbVar12);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pppppbVar35 = (byte *****)ppppbVar12;" (assignment_expression "pppppbVar35 = (byte *****)ppppbVar12" identifier = (cast_expression "(byte *****)ppppbVar12" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);" statement_identifier : (expression_statement "iVar27 = (*pcVar38)(iVar22 + -0x4144);" (assignment_expression "iVar27 = (*pcVar38)(iVar22 + -0x4144)" identifier = (call_expression "(*pcVar38)(iVar22 + -0x4144)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(iVar22 + -0x4144)" ( (binary_expression "iVar22 + -0x4144" identifier + number_literal) )))) ;)) (expression_statement "pppppbVar32 = pppppbVar33;" (assignment_expression "pppppbVar32 = pppppbVar33" identifier = identifier) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (if_statement "if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }" if (parenthesized_expression "(bVar21 != 1)" ( (binary_expression "bVar21 != 1" identifier != number_literal) )) (compound_statement "{\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }" { (labeled_statement "LAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);" statement_identifier : (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3f54" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier )))) ;)) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "(**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));" (call_expression "(**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8))" (parenthesized_expression "(**(code **)(**(int **)(iVar18 + 8) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar18 + 8) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar18 + 8) + 4)" * (cast_expression "(code **)(**(int **)(iVar18 + 8) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar18 + 8) + 4)" ( (binary_expression "**(int **)(iVar18 + 8) + 4" (pointer_expression "**(int **)(iVar18 + 8)" * (pointer_expression "*(int **)(iVar18 + 8)" * (cast_expression "(int **)(iVar18 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar18 + 8))" ( (pointer_expression "*(int **)(iVar18 + 8)" * (cast_expression "(int **)(iVar18 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 8)" * (cast_expression "(undefined4 *)(iVar18 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00077400(iVar18);" (call_expression "FUN_00077400(iVar18)" identifier (argument_list "(iVar18)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (labeled_statement "LAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }" statement_identifier : (if_statement "if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }" if (parenthesized_expression "((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9))" ( (binary_expression "(bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)" (parenthesized_expression "(bVar21 == 0x62)" ( (binary_expression "bVar21 == 0x62" identifier == number_literal) )) && (parenthesized_expression "(pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)" ( (comma_expression "pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9" (assignment_expression "pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c)" identifier = (pointer_expression "*(byte ******)(pcVar40 + 0x3885c)" * (cast_expression "(byte ******)(pcVar40 + 0x3885c)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(pcVar40 + 0x3885c)" ( (binary_expression "pcVar40 + 0x3885c" identifier + number_literal) ))))) , (binary_expression "3 < (int)pppppbVar35 + -9" number_literal < (binary_expression "(int)pppppbVar35 + -9" (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal))) ))) )) (compound_statement "{\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }" { (expression_statement "pppppbVar32 = pppppbVar32 + 0x1abc;" (assignment_expression "pppppbVar32 = pppppbVar32 + 0x1abc" identifier = (binary_expression "pppppbVar32 + 0x1abc" identifier + number_literal)) ;) (expression_statement "iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);" (assignment_expression "iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0)" identifier = (call_expression "FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0)" identifier (argument_list "(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0)" ( (binary_expression "iVar18 + 0x29" identifier + number_literal) , (cast_expression "(byte *)((int)pppppbVar35 + -9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar35 + -9)" ( (binary_expression "(int)pppppbVar35 + -9" (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal )))) ;) (expression_statement "ppppbVar12 = ppppbStack_e8;" (assignment_expression "ppppbVar12 = ppppbStack_e8" identifier = identifier) ;) (if_statement "if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }" if (parenthesized_expression "((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0))" ( (binary_expression "(iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)" (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) && (parenthesized_expression "((byte *****)ppppbStack_e8 != (byte *****)0x0)" ( (binary_expression "(byte *****)ppppbStack_e8 != (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) != (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ))) )) (compound_statement "{\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }" { (expression_statement "ppppbStack_108 = ppppbStack_e8;" (assignment_expression "ppppbStack_108 = ppppbStack_e8" identifier = identifier) ;) (expression_statement "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);" (assignment_expression "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38c4c))" ( (pointer_expression "**(code **)(pcVar40 + 0x38c4c)" * (pointer_expression "*(code **)(pcVar40 + 0x38c4c)" * (cast_expression "(code **)(pcVar40 + 0x38c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38c4c)" ( (binary_expression "pcVar40 + 0x38c4c" identifier + number_literal) ))))) )) (argument_list "(ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300)" ( identifier , (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x4300" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" * (cast_expression "(int *)(pcVar40 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x380fc)" ( (binary_expression "pcVar40 + 0x380fc" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }" if (parenthesized_expression "((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   ))" ( (binary_expression "(iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )" ( (comma_expression "iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0" (assignment_expression "iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14))" identifier = (call_expression "(**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14))" (parenthesized_expression "(**(code **)(pcVar40 + 0x3865c))" ( (pointer_expression "**(code **)(pcVar40 + 0x3865c)" * (pointer_expression "*(code **)(pcVar40 + 0x3865c)" * (cast_expression "(code **)(pcVar40 + 0x3865c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x3865c)" ( (binary_expression "pcVar40 + 0x3865c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14))" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) )))) , (binary_expression "iVar22 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }" { (expression_statement "uVar41 = *(undefined4 *)(iVar18 + 0x25);" (assignment_expression "uVar41 = *(undefined4 *)(iVar18 + 0x25)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x25)" * (cast_expression "(undefined4 *)(iVar18 + 0x25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x25)" ( (binary_expression "iVar18 + 0x25" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbVar12);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12)" ( identifier ))) ;) (expression_statement "uStack_e0 = uVar41;" (assignment_expression "uStack_e0 = uVar41" identifier = identifier) ;) (expression_statement "puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;" (assignment_expression "puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" identifier = (cast_expression "(undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x403c)" * (cast_expression "(undefined4 *)(iVar18 + 0x403c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x403c)" ( (binary_expression "iVar18 + 0x403c" identifier + number_literal) )))) , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal ))))) ;) (if_statement "if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }" if (parenthesized_expression "(puVar29 == (undefined4 *)0x0)" ( (binary_expression "puVar29 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }" { (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38158);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38158)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) ;) (expression_statement "iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;" (assignment_expression "iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8" identifier = (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3fe8" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal)) ;) (labeled_statement "LAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);" statement_identifier : (expression_statement "uVar41 = (*pcVar38)(iVar27,uVar41);" (assignment_expression "uVar41 = (*pcVar38)(iVar27,uVar41)" identifier = (call_expression "(*pcVar38)(iVar27,uVar41)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(iVar27,uVar41)" ( identifier , identifier )))) ;)) (expression_statement "FUN_00077910(iVar18,uVar41);" (call_expression "FUN_00077910(iVar18,uVar41)" identifier (argument_list "(iVar18,uVar41)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(uVar41);" (call_expression "(**(code **)(pcVar40 + 0x38124))(uVar41)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(uVar41)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }" else (compound_statement "{\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }" { (expression_statement "pppbStack_c0 = (byte ***)*puVar29;" (assignment_expression "pppbStack_c0 = (byte ***)*puVar29" identifier = (cast_expression "(byte ***)*puVar29" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (pointer_expression "*puVar29" * identifier))) ;) (expression_statement "FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);" (call_expression "FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc)" identifier (argument_list "(iVar18 + 8,100,&pppbStack_c0,4,0,0xc)" ( (binary_expression "iVar18 + 8" identifier + number_literal) , number_literal , (pointer_expression "&pppbStack_c0" & identifier) , number_literal , number_literal , number_literal ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (expression_statement "iVar22 = *(int *)(pcVar40 + 0x380fc);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x380fc)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x380fc)" * (cast_expression "(int *)(pcVar40 + 0x380fc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x380fc)" ( (binary_expression "pcVar40 + 0x380fc" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);" (assignment_expression "iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38c4c))" ( (pointer_expression "**(code **)(pcVar40 + 0x38c4c)" * (pointer_expression "*(code **)(pcVar40 + 0x38c4c)" * (cast_expression "(code **)(pcVar40 + 0x38c4c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38c4c)" ( (binary_expression "pcVar40 + 0x38c4c" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12,iVar22 + 0x429c)" ( identifier , (binary_expression "iVar22 + 0x429c" identifier + number_literal) )))) ;) (if_statement "if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }" { (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbVar12);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12)" ( identifier ))) ;) (expression_statement "ppppbStack_108 = ppppbVar12;" (assignment_expression "ppppbStack_108 = ppppbVar12" identifier = identifier) ;) (goto_statement "goto LAB_00078df8;" goto statement_identifier ;) })) (expression_statement "uVar41 = *(undefined4 *)(iVar18 + 0x25);" (assignment_expression "uVar41 = *(undefined4 *)(iVar18 + 0x25)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x25)" * (cast_expression "(undefined4 *)(iVar18 + 0x25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x25)" ( (binary_expression "iVar18 + 0x25" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbVar12);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12)" ( identifier ))) ;) (expression_statement "uStack_e0 = uVar41;" (assignment_expression "uStack_e0 = uVar41" identifier = identifier) ;) (expression_statement "ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);" (assignment_expression "ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" identifier = (cast_expression "(byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x403c)" * (cast_expression "(undefined4 *)(iVar18 + 0x403c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x403c)" ( (binary_expression "iVar18 + 0x403c" identifier + number_literal) )))) , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal ))))) ;) (if_statement "if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }" if (parenthesized_expression "((byte *****)ppppbStack_108 == (byte *****)0x0)" ( (binary_expression "(byte *****)ppppbStack_108 == (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }" { (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38158);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38158)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) ;) (expression_statement "iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;" (assignment_expression "iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0" identifier = (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3fb0" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal)) ;) (goto_statement "goto LAB_000794d0;" goto statement_identifier ;) })) (if_statement "if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }" if (parenthesized_expression "((int)pbVar31 < 0x11)" ( (binary_expression "(int)pbVar31 < 0x11" (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }" { (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3f7c" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "cVar5 = *(char *)(iVar18 + 0x34);" (assignment_expression "cVar5 = *(char *)(iVar18 + 0x34)" identifier = (pointer_expression "*(char *)(iVar18 + 0x34)" * (cast_expression "(char *)(iVar18 + 0x34)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x34)" ( (binary_expression "iVar18 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "pbVar28 = (byte *)((int)pppppbVar35 + -0x16);" (assignment_expression "pbVar28 = (byte *)((int)pppppbVar35 + -0x16)" identifier = (cast_expression "(byte *)((int)pppppbVar35 + -0x16)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar35 + -0x16)" ( (binary_expression "(int)pppppbVar35 + -0x16" (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "cVar6 = *(char *)(iVar18 + 0x35);" (assignment_expression "cVar6 = *(char *)(iVar18 + 0x35)" identifier = (pointer_expression "*(char *)(iVar18 + 0x35)" * (cast_expression "(char *)(iVar18 + 0x35)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x35)" ( (binary_expression "iVar18 + 0x35" identifier + number_literal) ))))) ;) (if_statement "if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }" if (parenthesized_expression "((int)pbVar28 < 4)" ( (binary_expression "(int)pbVar28 < 4" (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }" { (expression_statement "ppppbVar12 = (byte ****)x11_identify_auth_proto(0);" (assignment_expression "ppppbVar12 = (byte ****)x11_identify_auth_proto(0)" identifier = (cast_expression "(byte ****)x11_identify_auth_proto(0)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "x11_identify_auth_proto(0)" identifier (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(0);" (call_expression "(**(code **)(pcVar40 + 0x38124))(0)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(0)" ( number_literal ))) ;) (labeled_statement "LAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;" statement_identifier : (expression_statement "pppppbVar35 = (byte *****)0xffffffff;" (assignment_expression "pppppbVar35 = (byte *****)0xffffffff" identifier = (cast_expression "(byte *****)0xffffffff" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;)) }) (else_clause "else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }" else (compound_statement "{\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }" { (expression_statement "iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);" (assignment_expression "iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0)" identifier = (call_expression "FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0)" identifier (argument_list "(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0)" ( (binary_expression "iVar18 + 0x36" identifier + number_literal) , identifier , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal )))) ;) (expression_statement "pppppbVar35 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar35 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    pppppbVar35 = (byte *****)0x0;\n                  }" { (expression_statement "pppppbVar35 = (byte *****)0x0;" (assignment_expression "pppppbVar35 = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) })) (expression_statement "ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);" (assignment_expression "ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35)" identifier = (cast_expression "(byte ****)x11_identify_auth_proto(pppppbVar35)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "x11_identify_auth_proto(pppppbVar35)" identifier (argument_list "(pppppbVar35)" ( identifier ))))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(pppppbVar35);" (call_expression "(**(code **)(pcVar40 + 0x38124))(pppppbVar35)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(pppppbVar35)" ( identifier ))) ;) (expression_statement "iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);" (assignment_expression "iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8)" identifier = (call_expression "FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8)" identifier (argument_list "(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8)" ( (binary_expression "iVar18 + 0x36" identifier + number_literal) , identifier , number_literal , (pointer_expression "&ppppbStack_e8" & identifier) )))) ;) (expression_statement "pppppbVar35 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar35 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (iVar11 == 0) goto LAB_0007949c;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0007949c;" goto statement_identifier ;)) }))) (expression_statement "pbVar28 = (byte *)((int)pppppbVar35 + 0x11);" (assignment_expression "pbVar28 = (byte *)((int)pppppbVar35 + 0x11)" identifier = (cast_expression "(byte *)((int)pppppbVar35 + 0x11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar35 + 0x11)" ( (binary_expression "(int)pppppbVar35 + 0x11" (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar11 = (int)pbVar31 - (int)pbVar28;" (assignment_expression "iVar11 = (int)pbVar31 - (int)pbVar28" identifier = (binary_expression "(int)pbVar31 - (int)pbVar28" (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar28" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pppppbVar35 = (byte *****)0x0;" (assignment_expression "pppppbVar35 = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (if_statement "if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }" if (parenthesized_expression "(iVar11 < 4)" ( (binary_expression "iVar11 < 4" identifier < number_literal) )) (compound_statement "{\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }" { (labeled_statement "LAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;" statement_identifier : (expression_statement "pppppbVar33 = (byte *****)0xffffffff;" (assignment_expression "pppppbVar33 = (byte *****)0xffffffff" identifier = (cast_expression "(byte *****)0xffffffff" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;)) }) (else_clause "else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }" else (compound_statement "{\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }" { (expression_statement "iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);" (assignment_expression "iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" identifier = (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" identifier (argument_list "(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" ( (binary_expression "pbVar28 + iVar27" identifier + identifier) , identifier , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal )))) ;) (expression_statement "pppppbVar35 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar35 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                    pppppbVar35 = (byte *****)0x0;\n                  }" { (expression_statement "pppppbVar35 = (byte *****)0x0;" (assignment_expression "pppppbVar35 = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) })) (expression_statement "iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);" (assignment_expression "iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" identifier = (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" identifier (argument_list "(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" ( (binary_expression "pbVar28 + iVar27" identifier + identifier) , identifier , number_literal , (pointer_expression "&ppppbStack_e8" & identifier) )))) ;) (expression_statement "pppppbVar33 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar33 = (byte *****)ppppbStack_e8" identifier = (cast_expression "(byte *****)ppppbStack_e8" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (if_statement "if (iVar11 == 0) goto LAB_00078ff4;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00078ff4;" goto statement_identifier ;)) }))) (if_statement "if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }" if (parenthesized_expression "((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3))" ( (binary_expression "(int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)" (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)(pbVar28 + (int)pppppbVar33 + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar28 + (int)pppppbVar33 + 3)" ( (binary_expression "pbVar28 + (int)pppppbVar33 + 3" (binary_expression "pbVar28 + (int)pppppbVar33" identifier + (cast_expression "(int)pppppbVar33" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )))) )) (compound_statement "{\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }" { (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3f7c" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(pppppbVar35);" (call_expression "(**(code **)(pcVar40 + 0x38124))(pppppbVar35)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(pppppbVar35)" ( identifier ))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;" (assignment_expression "pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27" identifier = (binary_expression "pbVar28 + (int)pppppbVar33 + iVar27" (binary_expression "pbVar28 + (int)pppppbVar33" identifier + (cast_expression "(int)pppppbVar33" ( (type_descriptor "int" primitive_type) ) identifier)) + identifier)) ;) (if_statement "if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }" if (parenthesized_expression "(-1 < (int)ppppbVar12)" ( (binary_expression "-1 < (int)ppppbVar12" number_literal < (cast_expression "(int)ppppbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }" { (expression_statement "bVar21 = *pbVar31;" (assignment_expression "bVar21 = *pbVar31" identifier = (pointer_expression "*pbVar31" * identifier)) ;) (expression_statement "bVar10 = cVar6 != '\0';" (assignment_expression "bVar10 = cVar6 != '\0'" identifier = (binary_expression "cVar6 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "bVar1 = pbVar31[1];" (assignment_expression "bVar1 = pbVar31[1]" identifier = (subscript_expression "pbVar31[1]" identifier [ number_literal ])) ;) (expression_statement "bVar2 = pbVar31[3];" (assignment_expression "bVar2 = pbVar31[3]" identifier = (subscript_expression "pbVar31[3]" identifier [ number_literal ])) ;) (expression_statement "bVar3 = pbVar31[2];" (assignment_expression "bVar3 = pbVar31[2]" identifier = (subscript_expression "pbVar31[2]" identifier [ number_literal ])) ;) (expression_statement "((byte *****)ppppbStack_108)[6] = ppppbVar12;" (assignment_expression "((byte *****)ppppbStack_108)[6] = ppppbVar12" (subscript_expression "((byte *****)ppppbStack_108)[6]" (parenthesized_expression "((byte *****)ppppbStack_108)" ( (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);" (assignment_expression "ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8)" identifier = (cast_expression "(byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8)" identifier (argument_list "(pppppbVar35,(byte *****)ppppbStack_108 + 8)" ( identifier , (binary_expression "(byte *****)ppppbStack_108 + 8" (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) + number_literal) ))))) ;) (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38124);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38124)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) ;) (expression_statement "((byte *****)ppppbStack_108)[7] = ppppbVar14;" (assignment_expression "((byte *****)ppppbStack_108)[7] = ppppbVar14" (subscript_expression "((byte *****)ppppbStack_108)[7]" (parenthesized_expression "((byte *****)ppppbStack_108)" ( (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "(*pcVar38)(pppppbVar35);" (call_expression "(*pcVar38)(pppppbVar35)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(pppppbVar35)" ( identifier ))) ;) (expression_statement "ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);" (assignment_expression "ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108)" identifier = (cast_expression "(byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38920))" ( (pointer_expression "**(code **)(pcVar40 + 0x38920)" * (pointer_expression "*(code **)(pcVar40 + 0x38920)" * (cast_expression "(code **)(pcVar40 + 0x38920)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38920)" ( (binary_expression "pcVar40 + 0x38920" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier , identifier , identifier ))))) ;) (expression_statement "((byte *****)ppppbStack_108)[5] = ppppbVar12;" (assignment_expression "((byte *****)ppppbStack_108)[5] = ppppbVar12" (subscript_expression "((byte *****)ppppbStack_108)[5]" (parenthesized_expression "((byte *****)ppppbStack_108)" ( (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;" (assignment_expression "((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10" (subscript_expression "((byte *****)ppppbStack_108)[9]" (parenthesized_expression "((byte *****)ppppbStack_108)" ( (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]) = (cast_expression "(byte ****)(uint)bVar10" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (cast_expression "(uint)bVar10" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);" (assignment_expression "pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3])" identifier = (cast_expression "(byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3])" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (call_expression "(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3])" (parenthesized_expression "(**(code **)(pcVar40 + 0x38b58))" ( (pointer_expression "**(code **)(pcVar40 + 0x38b58)" * (pointer_expression "*(code **)(pcVar40 + 0x38b58)" * (cast_expression "(code **)(pcVar40 + 0x38b58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38b58)" ( (binary_expression "pcVar40 + 0x38b58" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12[3])" ( (subscript_expression "ppppbVar12[3]" identifier [ number_literal ]) ))))) ;) (expression_statement "pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);" (assignment_expression "pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4])" identifier = (cast_expression "(byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4])" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (call_expression "(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4])" (parenthesized_expression "(**(code **)(pcVar40 + 0x38b58))" ( (pointer_expression "**(code **)(pcVar40 + 0x38b58)" * (pointer_expression "*(code **)(pcVar40 + 0x38b58)" * (cast_expression "(code **)(pcVar40 + 0x38b58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38b58)" ( (binary_expression "pcVar40 + 0x38b58" identifier + number_literal) ))))) )) (argument_list "(ppppbVar12[4])" ( (subscript_expression "ppppbVar12[4]" identifier [ number_literal ]) ))))) ;) (expression_statement "puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);" (assignment_expression "puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1)" identifier = (cast_expression "(undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1)" (parenthesized_expression "(**(code **)(pcVar40 + 0x3815c))" ( (pointer_expression "**(code **)(pcVar40 + 0x3815c)" * (pointer_expression "*(code **)(pcVar40 + 0x3815c)" * (cast_expression "(code **)(pcVar40 + 0x3815c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x3815c)" ( (binary_expression "pcVar40 + 0x3815c" identifier + number_literal) ))))) )) (argument_list "((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1)" ( (binary_expression "(byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35" (cast_expression "(byte *)((int)pppppbVar32 + 0x1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar32 + 0x1d)" ( (binary_expression "(int)pppppbVar32 + 0x1d" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) + (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal ))))) ;) (expression_statement "puVar15[4] = 0;" (assignment_expression "puVar15[4] = 0" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar15[5] = 0;" (assignment_expression "puVar15[5] = 0" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar23 = *(uint *)(iVar22 + 0x429c);" (assignment_expression "uVar23 = *(uint *)(iVar22 + 0x429c)" identifier = (pointer_expression "*(uint *)(iVar22 + 0x429c)" * (cast_expression "(uint *)(iVar22 + 0x429c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x429c)" ( (binary_expression "iVar22 + 0x429c" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined1 *)(iVar22 + 0x42a0);" (assignment_expression "uVar7 = *(undefined1 *)(iVar22 + 0x42a0)" identifier = (pointer_expression "*(undefined1 *)(iVar22 + 0x42a0)" * (cast_expression "(undefined1 *)(iVar22 + 0x42a0)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x42a0)" ( (binary_expression "iVar22 + 0x42a0" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = *(undefined1 *)(iVar22 + 0x42a1);" (assignment_expression "uVar8 = *(undefined1 *)(iVar22 + 0x42a1)" identifier = (pointer_expression "*(undefined1 *)(iVar22 + 0x42a1)" * (cast_expression "(undefined1 *)(iVar22 + 0x42a1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x42a1)" ( (binary_expression "iVar22 + 0x42a1" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined1 *)(iVar22 + 0x42a2);" (assignment_expression "uVar9 = *(undefined1 *)(iVar22 + 0x42a2)" identifier = (pointer_expression "*(undefined1 *)(iVar22 + 0x42a2)" * (cast_expression "(undefined1 *)(iVar22 + 0x42a2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x42a2)" ( (binary_expression "iVar22 + 0x42a2" identifier + number_literal) ))))) ;) (expression_statement "puVar15[3] = (char)uVar41;" (assignment_expression "puVar15[3] = (char)uVar41" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = (cast_expression "(char)uVar41" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*puVar15 = (char)((uint)uVar41 >> 0x18);" (assignment_expression "*puVar15 = (char)((uint)uVar41 >> 0x18)" (pointer_expression "*puVar15" * identifier) = (cast_expression "(char)((uint)uVar41 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar41 >> 0x18)" ( (binary_expression "(uint)uVar41 >> 0x18" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar15[1] = (char)((uint)uVar41 >> 0x10);" (assignment_expression "puVar15[1] = (char)((uint)uVar41 >> 0x10)" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)uVar41 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar41 >> 0x10)" ( (binary_expression "(uint)uVar41 >> 0x10" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar15[2] = (char)((uint)uVar41 >> 8);" (assignment_expression "puVar15[2] = (char)((uint)uVar41 >> 8)" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)uVar41 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar41 >> 8)" ( (binary_expression "(uint)uVar41 >> 8" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar15[7] = 7;" (assignment_expression "puVar15[7] = 7" (subscript_expression "puVar15[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar15[6] = 0;" (assignment_expression "puVar15[6] = 0" (subscript_expression "puVar15[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar24 = puVar15 + 8;" (assignment_expression "puVar24 = puVar15 + 8" identifier = (binary_expression "puVar15 + 8" identifier + number_literal)) ;) (expression_statement "uVar30 = (uint)puVar24 & 3;" (assignment_expression "uVar30 = (uint)puVar24 & 3" identifier = (binary_expression "(uint)puVar24 & 3" (cast_expression "(uint)puVar24" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;" (assignment_expression "*(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8" (pointer_expression "*(uint *)(puVar24 + -uVar30)" * (cast_expression "(uint *)(puVar24 + -uVar30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -uVar30)" ( (binary_expression "puVar24 + -uVar30" identifier + (unary_expression "-uVar30" - identifier)) )))) = (binary_expression "*(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8" (binary_expression "*(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8" (pointer_expression "*(uint *)(puVar24 + -uVar30)" * (cast_expression "(uint *)(puVar24 + -uVar30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -uVar30)" ( (binary_expression "puVar24 + -uVar30" identifier + (unary_expression "-uVar30" - identifier)) )))) & (binary_expression "-1 << (4 - uVar30) * 8" number_literal << (binary_expression "(4 - uVar30) * 8" (parenthesized_expression "(4 - uVar30)" ( (binary_expression "4 - uVar30" number_literal - identifier) )) * number_literal))) | (binary_expression "uVar23 >> uVar30 * 8" identifier >> (binary_expression "uVar30 * 8" identifier * number_literal)))) ;) (expression_statement "puVar24 = puVar15 + 0xb;" (assignment_expression "puVar24 = puVar15 + 0xb" identifier = (binary_expression "puVar15 + 0xb" identifier + number_literal)) ;) (expression_statement "uVar30 = (uint)puVar24 & 3;" (assignment_expression "uVar30 = (uint)puVar24 & 3" identifier = (binary_expression "(uint)puVar24 & 3" (cast_expression "(uint)puVar24" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "*(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;" (assignment_expression "*(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8" (pointer_expression "*(uint *)(puVar24 + -uVar30)" * (cast_expression "(uint *)(puVar24 + -uVar30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -uVar30)" ( (binary_expression "puVar24 + -uVar30" identifier + (unary_expression "-uVar30" - identifier)) )))) = (binary_expression "*(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8" (binary_expression "*(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8" (pointer_expression "*(uint *)(puVar24 + -uVar30)" * (cast_expression "(uint *)(puVar24 + -uVar30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + -uVar30)" ( (binary_expression "puVar24 + -uVar30" identifier + (unary_expression "-uVar30" - identifier)) )))) & (binary_expression "0xffffffffU >> (uVar30 + 1) * 8" number_literal >> (binary_expression "(uVar30 + 1) * 8" (parenthesized_expression "(uVar30 + 1)" ( (binary_expression "uVar30 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "uVar23 << (3 - uVar30) * 8" identifier << (binary_expression "(3 - uVar30) * 8" (parenthesized_expression "(3 - uVar30)" ( (binary_expression "3 - uVar30" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "puVar15[0xc] = uVar7;" (assignment_expression "puVar15[0xc] = uVar7" (subscript_expression "puVar15[0xc]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[0xd] = uVar8;" (assignment_expression "puVar15[0xd] = uVar8" (subscript_expression "puVar15[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[0xe] = uVar9;" (assignment_expression "puVar15[0xe] = uVar9" (subscript_expression "puVar15[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[0x10] = bVar10;" (assignment_expression "puVar15[0x10] = bVar10" (subscript_expression "puVar15[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);" (assignment_expression "puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18)" (subscript_expression "puVar15[0x11]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar32 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar32 >> 0x18)" ( (binary_expression "(uint)pppppbVar32 >> 0x18" (cast_expression "(uint)pppppbVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);" (assignment_expression "puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10)" (subscript_expression "puVar15[0x12]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar32 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar32 >> 0x10)" ( (binary_expression "(uint)pppppbVar32 >> 0x10" (cast_expression "(uint)pppppbVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);" (assignment_expression "puVar15[0x13] = (char)((uint)pppppbVar32 >> 8)" (subscript_expression "puVar15[0x13]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar32 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar32 >> 8)" ( (binary_expression "(uint)pppppbVar32 >> 8" (cast_expression "(uint)pppppbVar32" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar15[0x14] = (char)pppppbVar32;" (assignment_expression "puVar15[0x14] = (char)pppppbVar32" (subscript_expression "puVar15[0x14]" identifier [ number_literal ]) = (cast_expression "(char)pppppbVar32" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38c14);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38c14)" identifier = (pointer_expression "*(code **)(pcVar40 + 0x38c14)" * (cast_expression "(code **)(pcVar40 + 0x38c14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38c14)" ( (binary_expression "pcVar40 + 0x38c14" identifier + number_literal) ))))) ;) (expression_statement "puVar15[0xf] = cVar5 != '\0';" (assignment_expression "puVar15[0xf] = cVar5 != '\0'" (subscript_expression "puVar15[0xf]" identifier [ number_literal ]) = (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "(*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);" (call_expression "(*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32)" (parenthesized_expression "(*pcVar38)" ( (pointer_expression "*pcVar38" * identifier) )) (argument_list "(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32)" ( (binary_expression "puVar15 + 0x15" identifier + number_literal) , (subscript_expression "((byte *****)ppppbStack_108)[5][3]" (subscript_expression "((byte *****)ppppbStack_108)[5]" (parenthesized_expression "((byte *****)ppppbStack_108)" ( (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]) [ number_literal ]) , identifier ))) ;) (expression_statement "puVar24 = puVar15 + (int)pppppbVar32;" (assignment_expression "puVar24 = puVar15 + (int)pppppbVar32" identifier = (binary_expression "puVar15 + (int)pppppbVar32" identifier + (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);" (assignment_expression "puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18)" (subscript_expression "puVar24[0x15]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar35 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar35 >> 0x18)" ( (binary_expression "(uint)pppppbVar35 >> 0x18" (cast_expression "(uint)pppppbVar35" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);" (assignment_expression "puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10)" (subscript_expression "puVar24[0x16]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar35 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar35 >> 0x10)" ( (binary_expression "(uint)pppppbVar35 >> 0x10" (cast_expression "(uint)pppppbVar35" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);" (assignment_expression "puVar24[0x17] = (char)((uint)pppppbVar35 >> 8)" (subscript_expression "puVar24[0x17]" identifier [ number_literal ]) = (cast_expression "(char)((uint)pppppbVar35 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)pppppbVar35 >> 8)" ( (binary_expression "(uint)pppppbVar35 >> 8" (cast_expression "(uint)pppppbVar35" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar24[0x18] = (char)pppppbVar35;" (assignment_expression "puVar24[0x18] = (char)pppppbVar35" (subscript_expression "puVar24[0x18]" identifier [ number_literal ]) = (cast_expression "(char)pppppbVar35" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "(**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);" (call_expression "(**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38c14))" ( (pointer_expression "**(code **)(pcVar40 + 0x38c14)" * (pointer_expression "*(code **)(pcVar40 + 0x38c14)" * (cast_expression "(code **)(pcVar40 + 0x38c14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38c14)" ( (binary_expression "pcVar40 + 0x38c14" identifier + number_literal) ))))) )) (argument_list "(puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35)" ( (binary_expression "puVar15 + (int)((int)pppppbVar32 + 0x19)" identifier + (cast_expression "(int)((int)pppppbVar32 + 0x19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppbVar32 + 0x19)" ( (binary_expression "(int)pppppbVar32 + 0x19" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (subscript_expression "((byte *****)ppppbStack_108)[5][4]" (subscript_expression "((byte *****)ppppbStack_108)[5]" (parenthesized_expression "((byte *****)ppppbStack_108)" ( (cast_expression "(byte *****)ppppbStack_108" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier) )) [ number_literal ]) [ number_literal ]) , identifier ))) ;) (expression_statement "puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);" (assignment_expression "puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35)" identifier = (binary_expression "puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35)" identifier + (cast_expression "(int)((int)pppppbVar32 + (int)pppppbVar35)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)pppppbVar32 + (int)pppppbVar35)" ( (binary_expression "(int)pppppbVar32 + (int)pppppbVar35" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "puVar24[0x1c] = bVar2;" (assignment_expression "puVar24[0x1c] = bVar2" (subscript_expression "puVar24[0x1c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar24[0x19] = bVar21;" (assignment_expression "puVar24[0x19] = bVar21" (subscript_expression "puVar24[0x19]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar24[0x1a] = bVar1;" (assignment_expression "puVar24[0x1a] = bVar1" (subscript_expression "puVar24[0x1a]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar24[0x1b] = bVar3;" (assignment_expression "puVar24[0x1b] = bVar3" (subscript_expression "puVar24[0x1b]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar40 + 0x388fc)" * (pointer_expression "*(code **)(pcVar40 + 0x388fc)" * (cast_expression "(code **)(pcVar40 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x388fc)" ( (binary_expression "pcVar40 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar18 + 4)" * (cast_expression "(undefined4 *)(iVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) , number_literal , identifier , (binary_expression "(byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35" (cast_expression "(byte *)((int)pppppbVar32 + 0x1d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar32 + 0x1d)" ( (binary_expression "(int)pppppbVar32 + 0x1d" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) + (cast_expression "(int)pppppbVar35" ( (type_descriptor "int" primitive_type) ) identifier)) , number_literal ))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(puVar15);" (call_expression "(**(code **)(pcVar40 + 0x38124))(puVar15)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(puVar15)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (goto_statement "goto LAB_00078f28;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);" statement_identifier : (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar40 + 0x388fc)" * (pointer_expression "*(code **)(pcVar40 + 0x388fc)" * (cast_expression "(code **)(pcVar40 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x388fc)" ( (binary_expression "pcVar40 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar18 + 4)" * (cast_expression "(undefined4 *)(iVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) , identifier , identifier , identifier , number_literal ))) ;)) (if_statement "if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }" if (parenthesized_expression "((bVar21 == 0x61) && (3 < (int)pbVar31))" ( (binary_expression "(bVar21 == 0x61) && (3 < (int)pbVar31)" (parenthesized_expression "(bVar21 == 0x61)" ( (binary_expression "bVar21 == 0x61" identifier == number_literal) )) && (parenthesized_expression "(3 < (int)pbVar31)" ( (binary_expression "3 < (int)pbVar31" number_literal < (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }" { (expression_statement "uStack_e0 = *(undefined4 *)(iVar18 + 0x25);" (assignment_expression "uStack_e0 = *(undefined4 *)(iVar18 + 0x25)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x25)" * (cast_expression "(undefined4 *)(iVar18 + 0x25)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x25)" ( (binary_expression "iVar18 + 0x25" identifier + number_literal) ))))) ;) (expression_statement "iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);" (assignment_expression "iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" identifier = (call_expression "find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x403c)" * (cast_expression "(undefined4 *)(iVar18 + 0x403c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x403c)" ( (binary_expression "iVar18 + 0x403c" identifier + number_literal) )))) , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal )))) ;) (if_statement "if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }" if (parenthesized_expression "(iVar27 != 0)" ( (binary_expression "iVar27 != 0" identifier != number_literal) )) (compound_statement "{\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }" { (if_statement "if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" if (parenthesized_expression "(*(int *)(iVar27 + 0x10) == 2)" ( (binary_expression "*(int *)(iVar27 + 0x10) == 2" (pointer_expression "*(int *)(iVar27 + 0x10)" * (cast_expression "(int *)(iVar27 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x10)" ( (binary_expression "iVar27 + 0x10" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" { (expression_statement "(**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));" (call_expression "(**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4))" (parenthesized_expression "(**(code **)(pcVar40 + 0x38900))" ( (pointer_expression "**(code **)(pcVar40 + 0x38900)" * (pointer_expression "*(code **)(pcVar40 + 0x38900)" * (cast_expression "(code **)(pcVar40 + 0x38900)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38900)" ( (binary_expression "pcVar40 + 0x38900" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4))" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar27 + 4)" * (cast_expression "(undefined4 *)(iVar27 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 4)" ( (binary_expression "iVar27 + 4" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_00076738(iVar18,iVar27);" (call_expression "FUN_00076738(iVar18,iVar27)" identifier (argument_list "(iVar18,iVar27)" ( identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" else (compound_statement "{\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" { (expression_statement "*(undefined4 *)(iVar27 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar27 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar27 + 0x10)" * (cast_expression "(undefined4 *)(iVar27 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x10)" ( (binary_expression "iVar27 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) })) }) (else_clause "else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }" else (compound_statement "{\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }" { (if_statement "if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }" if (parenthesized_expression "(bVar21 == 0x5c)" ( (binary_expression "bVar21 == 0x5c" identifier == number_literal) )) (compound_statement "{\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }" { (if_statement "if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }" if (parenthesized_expression "(3 < (int)pbVar31)" ( (binary_expression "3 < (int)pbVar31" number_literal < (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }" { (expression_statement "pppppbVar32 = *(byte ******)(iVar18 + 0x25);" (assignment_expression "pppppbVar32 = *(byte ******)(iVar18 + 0x25)" identifier = (pointer_expression "*(byte ******)(iVar18 + 0x25)" * (cast_expression "(byte ******)(iVar18 + 0x25)" ( (type_descriptor "byte ******" type_identifier (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) (parenthesized_expression "(iVar18 + 0x25)" ( (binary_expression "iVar18 + 0x25" identifier + number_literal) ))))) ;) (expression_statement "pppppbVar35 = &ppppbStack_e8;" (assignment_expression "pppppbVar35 = &ppppbStack_e8" identifier = (pointer_expression "&ppppbStack_e8" & identifier)) ;) (expression_statement "ppppbStack_e8 = (byte ****)pppppbVar32;" (assignment_expression "ppppbStack_e8 = (byte ****)pppppbVar32" identifier = (cast_expression "(byte ****)pppppbVar32" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);" (assignment_expression "iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0)" identifier = (call_expression "find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x4034)" * (cast_expression "(undefined4 *)(iVar18 + 0x4034)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4034)" ( (binary_expression "iVar18 + 0x4034" identifier + number_literal) )))) , identifier , number_literal )))) ;) (if_statement "if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" { (expression_statement "ppppbStack_e4 = (byte ****)pppppbVar32;" (assignment_expression "ppppbStack_e4 = (byte ****)pppppbVar32" identifier = (cast_expression "(byte ****)pppppbVar32" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);" (assignment_expression "iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0)" identifier = (call_expression "find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x4044)" * (cast_expression "(undefined4 *)(iVar18 + 0x4044)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4044)" ( (binary_expression "iVar18 + 0x4044" identifier + number_literal) )))) , identifier , number_literal )))) ;) (if_statement "if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (compound_statement "{\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }" { (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x4020" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "share_xchannel_failure(iVar18,iVar27);" (call_expression "share_xchannel_failure(iVar18,iVar27)" identifier (argument_list "(iVar18,iVar27)" ( identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" else (compound_statement "{\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" { (expression_statement "iVar11 = *(int *)(iVar18 + 0xc);" (assignment_expression "iVar11 = *(int *)(iVar18 + 0xc)" identifier = (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar41 = 0x5c;" (assignment_expression "uVar41 = 0x5c" identifier = number_literal) ;) (labeled_statement "LAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);" statement_identifier : (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar40 + 0x388fc)" * (pointer_expression "*(code **)(pcVar40 + 0x388fc)" * (cast_expression "(code **)(pcVar40 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x388fc)" ( (binary_expression "pcVar40 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0)" ( (pointer_expression "*(undefined4 *)(iVar11 + 0x14)" * (cast_expression "(undefined4 *)(iVar11 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar18 + 4)" * (cast_expression "(undefined4 *)(iVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) , identifier , identifier , identifier , number_literal ))) ;)) (expression_statement "del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);" (call_expression "del234(*(undefined4 *)(iVar18 + 0x4034),iVar22)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x4034),iVar22)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x4034)" * (cast_expression "(undefined4 *)(iVar18 + 0x4034)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4034)" ( (binary_expression "iVar18 + 0x4034" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(iVar22);" (call_expression "(**(code **)(pcVar40 + 0x38124))(iVar22)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(iVar22)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x4048)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x4048" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (if_statement "if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }" if (parenthesized_expression "(0x5b < bVar21)" ( (binary_expression "0x5b < bVar21" number_literal < identifier) )) (compound_statement "{\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }" { (if_statement "if (100 < bVar21) goto LAB_0007878c;" if (parenthesized_expression "(100 < bVar21)" ( (binary_expression "100 < bVar21" number_literal < identifier) )) (goto_statement "goto LAB_0007878c;" goto statement_identifier ;)) (goto_statement "goto LAB_00078844;" goto statement_identifier ;) })) (if_statement "if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }" if (parenthesized_expression "((int)pbVar31 < 0x10)" ( (binary_expression "(int)pbVar31 < 0x10" (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }" { (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x40f4)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x40f4" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "uVar30 = iVar18 + 0x25U & 3;" (assignment_expression "uVar30 = iVar18 + 0x25U & 3" identifier = (binary_expression "iVar18 + 0x25U & 3" (binary_expression "iVar18 + 0x25U" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar41 = *(undefined4 *)(iVar18 + 0x29);" (assignment_expression "uVar41 = *(undefined4 *)(iVar18 + 0x29)" identifier = (pointer_expression "*(undefined4 *)(iVar18 + 0x29)" * (cast_expression "(undefined4 *)(iVar18 + 0x29)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x29)" ( (binary_expression "iVar18 + 0x29" identifier + number_literal) ))))) ;) (expression_statement "uVar23 = iVar18 + 0x28U & 3;" (assignment_expression "uVar23 = iVar18 + 0x28U & 3" identifier = (binary_expression "iVar18 + 0x28U & 3" (binary_expression "iVar18 + 0x28U" identifier + number_literal) & number_literal)) ;) (expression_statement "pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);" (assignment_expression "pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8)" identifier = (cast_expression "(byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8)" ( (binary_expression "(*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8" (binary_expression "(*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8" (parenthesized_expression "(*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8)" ( (binary_expression "*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8" (binary_expression "*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8" (pointer_expression "*(int *)((iVar18 + 0x25U) - uVar30)" * (cast_expression "(int *)((iVar18 + 0x25U) - uVar30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar18 + 0x25U) - uVar30)" ( (binary_expression "(iVar18 + 0x25U) - uVar30" (parenthesized_expression "(iVar18 + 0x25U)" ( (binary_expression "iVar18 + 0x25U" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar30 * 8" identifier * number_literal)) | (binary_expression "(uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8" (cast_expression "(uint)pppppbVar32" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "0xffffffffU >> (4 - uVar30) * 8" number_literal >> (binary_expression "(4 - uVar30) * 8" (parenthesized_expression "(4 - uVar30)" ( (binary_expression "4 - uVar30" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar23 + 1) * 8" number_literal << (binary_expression "(uVar23 + 1) * 8" (parenthesized_expression "(uVar23 + 1)" ( (binary_expression "uVar23 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8" (pointer_expression "*(uint *)((iVar18 + 0x28U) - uVar23)" * (cast_expression "(uint *)((iVar18 + 0x28U) - uVar23)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar18 + 0x28U) - uVar23)" ( (binary_expression "(iVar18 + 0x28U) - uVar23" (parenthesized_expression "(iVar18 + 0x28U)" ( (binary_expression "iVar18 + 0x28U" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar23) * 8" (parenthesized_expression "(3 - uVar23)" ( (binary_expression "3 - uVar23" number_literal - identifier) )) * number_literal))) )))) ;) (expression_statement "ppppbStack_e8 = (byte ****)pppppbVar32;" (assignment_expression "ppppbStack_e8 = (byte ****)pppppbVar32" identifier = (cast_expression "(byte ****)pppppbVar32" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);" (assignment_expression "iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8)" identifier = (call_expression "find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x4034)" * (cast_expression "(undefined4 *)(iVar18 + 0x4034)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4034)" ( (binary_expression "iVar18 + 0x4034" identifier + number_literal) )))) , (pointer_expression "&ppppbStack_e8" & identifier) )))) ;) (if_statement "if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }" { (expression_statement "ppppbStack_e4 = (byte ****)pppppbVar32;" (assignment_expression "ppppbStack_e4 = (byte ****)pppppbVar32" identifier = (cast_expression "(byte ****)pppppbVar32" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) identifier)) ;) (expression_statement "pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);" (assignment_expression "pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0)" identifier = (cast_expression "(byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (call_expression "find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x4044)" * (cast_expression "(undefined4 *)(iVar18 + 0x4044)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4044)" ( (binary_expression "iVar18 + 0x4044" identifier + number_literal) )))) , (pointer_expression "&ppppbStack_e8" & identifier) , number_literal ))))) ;) (if_statement "if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;" if (parenthesized_expression "(pppppbVar35 == (byte *****)0x0)" ( (binary_expression "pppppbVar35 == (byte *****)0x0" identifier == (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (goto_statement "goto LAB_0007927c;" goto statement_identifier ;)) (expression_statement "ppppbVar12 = *pppppbVar35;" (assignment_expression "ppppbVar12 = *pppppbVar35" identifier = (pointer_expression "*pppppbVar35" * identifier)) ;) }) (else_clause "else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }" else (compound_statement "{\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }" { (expression_statement "pppppbVar35 = (byte *****)0x0;" (assignment_expression "pppppbVar35 = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);" (assignment_expression "ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" identifier = (cast_expression "(byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (call_expression "(**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38914))" ( (pointer_expression "**(code **)(pcVar40 + 0x38914)" * (pointer_expression "*(code **)(pcVar40 + 0x38914)" * (cast_expression "(code **)(pcVar40 + 0x38914)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38914)" ( (binary_expression "pcVar40 + 0x38914" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier ))))) ;) }))) (expression_statement "*(char *)(iVar18 + 0x2c) = (char)ppppbVar12;" (assignment_expression "*(char *)(iVar18 + 0x2c) = (char)ppppbVar12" (pointer_expression "*(char *)(iVar18 + 0x2c)" * (cast_expression "(char *)(iVar18 + 0x2c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2c)" ( (binary_expression "iVar18 + 0x2c" identifier + number_literal) )))) = (cast_expression "(char)ppppbVar12" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);" (assignment_expression "*(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18)" (pointer_expression "*(char *)(iVar18 + 0x29)" * (cast_expression "(char *)(iVar18 + 0x29)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x29)" ( (binary_expression "iVar18 + 0x29" identifier + number_literal) )))) = (cast_expression "(char)((uint)ppppbVar12 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppppbVar12 >> 0x18)" ( (binary_expression "(uint)ppppbVar12 >> 0x18" (cast_expression "(uint)ppppbVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);" (assignment_expression "*(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10)" (pointer_expression "*(char *)(iVar18 + 0x2a)" * (cast_expression "(char *)(iVar18 + 0x2a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2a)" ( (binary_expression "iVar18 + 0x2a" identifier + number_literal) )))) = (cast_expression "(char)((uint)ppppbVar12 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppppbVar12 >> 0x10)" ( (binary_expression "(uint)ppppbVar12 >> 0x10" (cast_expression "(uint)ppppbVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);" (assignment_expression "*(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8)" (pointer_expression "*(char *)(iVar18 + 0x2b)" * (cast_expression "(char *)(iVar18 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2b)" ( (binary_expression "iVar18 + 0x2b" identifier + number_literal) )))) = (cast_expression "(char)((uint)ppppbVar12 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ppppbVar12 >> 8)" ( (binary_expression "(uint)ppppbVar12 >> 8" (cast_expression "(uint)ppppbVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar30 = iVar18 + 0x31U & 3;" (assignment_expression "uVar30 = iVar18 + 0x31U & 3" identifier = (binary_expression "iVar18 + 0x31U & 3" (binary_expression "iVar18 + 0x31U" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar23 = iVar18 + 0x34U & 3;" (assignment_expression "uVar23 = iVar18 + 0x34U & 3" identifier = (binary_expression "iVar18 + 0x34U & 3" (binary_expression "iVar18 + 0x34U" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);" (assignment_expression "uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8)" identifier = (call_expression "FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8)" identifier (argument_list "(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8)" ( (binary_expression "iVar18 + 0x4038" identifier + number_literal) , (binary_expression "iVar18 + 0x403c" identifier + number_literal) , identifier , identifier , identifier , number_literal , (binary_expression "(*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8" (binary_expression "(*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8" (parenthesized_expression "(*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8)" ( (binary_expression "*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8" (binary_expression "*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8" (pointer_expression "*(int *)((iVar18 + 0x31U) - uVar30)" * (cast_expression "(int *)((iVar18 + 0x31U) - uVar30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar18 + 0x31U) - uVar30)" ( (binary_expression "(iVar18 + 0x31U) - uVar30" (parenthesized_expression "(iVar18 + 0x31U)" ( (binary_expression "iVar18 + 0x31U" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar30 * 8" identifier * number_literal)) | (binary_expression "in_t3 & 0xffffffffU >> (4 - uVar30) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar30) * 8" number_literal >> (binary_expression "(4 - uVar30) * 8" (parenthesized_expression "(4 - uVar30)" ( (binary_expression "4 - uVar30" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar23 + 1) * 8" number_literal << (binary_expression "(uVar23 + 1) * 8" (parenthesized_expression "(uVar23 + 1)" ( (binary_expression "uVar23 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8" (pointer_expression "*(uint *)((iVar18 + 0x34U) - uVar23)" * (cast_expression "(uint *)((iVar18 + 0x34U) - uVar23)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar18 + 0x34U) - uVar23)" ( (binary_expression "(iVar18 + 0x34U) - uVar23" (parenthesized_expression "(iVar18 + 0x34U)" ( (binary_expression "iVar18 + 0x34U" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar23) * 8" (parenthesized_expression "(3 - uVar23)" ( (binary_expression "3 - uVar23" number_literal - identifier) )) * number_literal))) )))) ;) (if_statement "if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }" { (expression_statement "iVar11 = *(int *)(iVar18 + 0xc);" (assignment_expression "iVar11 = *(int *)(iVar18 + 0xc)" identifier = (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar41 = 0x5b;" (assignment_expression "uVar41 = 0x5b" identifier = number_literal) ;) (goto_statement "goto LAB_000786e4;" goto statement_identifier ;) })) (if_statement "if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }" if (parenthesized_expression "(pppppbVar35 != (byte *****)0x0)" ( (binary_expression "pppppbVar35 != (byte *****)0x0" identifier != (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) )) (compound_statement "{\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }" { (if_statement "if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }" if (parenthesized_expression "(*(uint *)(iVar18 + 0x2d) < 0x100)" ( (binary_expression "*(uint *)(iVar18 + 0x2d) < 0x100" (pointer_expression "*(uint *)(iVar18 + 0x2d)" * (cast_expression "(uint *)(iVar18 + 0x2d)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d)" ( (binary_expression "iVar18 + 0x2d" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }" { (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d))" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d))" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d))" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x408c" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , (pointer_expression "*(uint *)(iVar18 + 0x2d)" * (cast_expression "(uint *)(iVar18 + 0x2d)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x2d)" ( (binary_expression "iVar18 + 0x2d" identifier + number_literal) )))) )))) ;) (goto_statement "goto LAB_000787a4;" goto statement_identifier ;) })) (expression_statement "share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);" (call_expression "share_xchannel_confirmation(iVar18,pppppbVar35,uVar41)" identifier (argument_list "(iVar18,pppppbVar35,uVar41)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);" (call_expression "FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35)" identifier (argument_list "(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35)" ( (pointer_expression "*(undefined4 *)(iVar18 + 0x4040)" * (cast_expression "(undefined4 *)(iVar18 + 0x4040)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4040)" ( (binary_expression "iVar18 + 0x4040" identifier + number_literal) )))) , (binary_expression "iVar18 + 0x4044" identifier + number_literal) , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;)) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) ))))) ;) (if_statement "if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }" if (parenthesized_expression "(3 < (int)pbVar31)" ( (binary_expression "3 < (int)pbVar31" number_literal < (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }" { (expression_statement "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);" (assignment_expression "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" identifier = (call_expression "FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" identifier (argument_list "(iVar27,pbVar31,0,&ppppbStack_e8)" ( identifier , identifier , number_literal , (pointer_expression "&ppppbStack_e8" & identifier) )))) ;) (if_statement "if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }" if (parenthesized_expression "(((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8))" ( (binary_expression "((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)" (parenthesized_expression "((iVar22 == 0) || ((int)ppppbStack_e8 < 0))" ( (binary_expression "(iVar22 == 0) || ((int)ppppbStack_e8 < 0)" (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "((int)ppppbStack_e8 < 0)" ( (binary_expression "(int)ppppbStack_e8 < 0" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) || (parenthesized_expression "(pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)" ( (comma_expression "pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8" (assignment_expression "pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27)" identifier = (cast_expression "(byte *****)((int)ppppbStack_e8 + iVar27)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)ppppbStack_e8 + iVar27)" ( (binary_expression "(int)ppppbStack_e8 + iVar27" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) , (binary_expression "(int)(pppppbVar35 + -4) <= (int)ppppbStack_e8" (cast_expression "(int)(pppppbVar35 + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pppppbVar35 + -4)" ( (binary_expression "pppppbVar35 + -4" identifier + number_literal) ))) <= (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier))) ))) )) (compound_statement "{\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }" { (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" identifier = (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00078e80;" goto statement_identifier ;) })) (expression_statement "pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);" (assignment_expression "pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26)" identifier = (cast_expression "(byte *)((int)ppppbStack_e8 + iVar18 + 0x26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppbStack_e8 + iVar18 + 0x26)" ( (binary_expression "(int)ppppbStack_e8 + iVar18 + 0x26" (binary_expression "(int)ppppbStack_e8 + iVar18" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);" (assignment_expression "ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27)" identifier = (cast_expression "(byte ****)((int)ppppbStack_e8 + iVar18 + 0x27)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbStack_e8 + iVar18 + 0x27)" ( (binary_expression "(int)ppppbStack_e8 + iVar18 + 0x27" (binary_expression "(int)ppppbStack_e8 + iVar18" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);" (assignment_expression "pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28)" identifier = (cast_expression "(byte *)((int)ppppbStack_e8 + iVar18 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppbStack_e8 + iVar18 + 0x28)" ( (binary_expression "(int)ppppbStack_e8 + iVar18 + 0x28" (binary_expression "(int)ppppbStack_e8 + iVar18" (cast_expression "(int)ppppbStack_e8" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);" (assignment_expression "pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8)" identifier = (cast_expression "(byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8)" ( (binary_expression "(uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8" (binary_expression "(uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28" (binary_expression "(uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10" (binary_expression "(uint)*(byte *)pppppbVar32 << 0x18" (binary_expression "(uint)*(byte *)pppppbVar32" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)pppppbVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal) | (binary_expression "(uint)*pbVar16 << 0x10" (binary_expression "(uint)*pbVar16" (parenthesized_expression "(uint)" ( identifier )) * identifier) << number_literal)) | (binary_expression "(uint)*pbVar28" (parenthesized_expression "(uint)" ( identifier )) * identifier)) | (binary_expression "(uint)*(byte *)ppppbStack_108 << 8" (binary_expression "(uint)*(byte *)ppppbStack_108" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)ppppbStack_108" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) << number_literal)) )))) ;) (expression_statement "uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);" (assignment_expression "uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38914))" ( (pointer_expression "**(code **)(pcVar40 + 0x38914)" * (pointer_expression "*(code **)(pcVar40 + 0x38914)" * (cast_expression "(code **)(pcVar40 + 0x38914)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38914)" ( (binary_expression "pcVar40 + 0x38914" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , identifier )))) ;) (expression_statement "FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);" (call_expression "FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8)" identifier (argument_list "(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8)" ( (binary_expression "iVar18 + 0x4038" identifier + number_literal) , (binary_expression "iVar18 + 0x403c" identifier + number_literal) , identifier , identifier , number_literal , number_literal , (binary_expression "(uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8" (binary_expression "(uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb)" (binary_expression "(uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10" (binary_expression "(uint)*(byte *)(pppppbVar32 + 2) << 0x18" (binary_expression "(uint)*(byte *)(pppppbVar32 + 2)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(pppppbVar32 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppbVar32 + 2)" ( (binary_expression "pppppbVar32 + 2" identifier + number_literal) )))) << number_literal) | (binary_expression "(uint)*(byte *)((int)pppppbVar32 + 9) << 0x10" (binary_expression "(uint)*(byte *)((int)pppppbVar32 + 9)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pppppbVar32 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar32 + 9)" ( (binary_expression "(int)pppppbVar32 + 9" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) << number_literal)) | (binary_expression "(uint)*(byte *)((int)pppppbVar32 + 0xb)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pppppbVar32 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar32 + 0xb)" ( (binary_expression "(int)pppppbVar32 + 0xb" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) | (binary_expression "(uint)*(byte *)((int)pppppbVar32 + 10) << 8" (binary_expression "(uint)*(byte *)((int)pppppbVar32 + 10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)pppppbVar32 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppppbVar32 + 10)" ( (binary_expression "(int)pppppbVar32 + 10" (cast_expression "(int)pppppbVar32" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) << number_literal)) ))) ;) (expression_statement "*(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);" (assignment_expression "*(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18)" (pointer_expression "*(byte *)pppppbVar32" * (cast_expression "(byte *)pppppbVar32" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (call_expression "(byte)((uint)uVar41 >> 0x18)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)uVar41 >> 0x18)" ( (binary_expression "(uint)uVar41 >> 0x18" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*pbVar16 = (byte)((uint)uVar41 >> 0x10);" (assignment_expression "*pbVar16 = (byte)((uint)uVar41 >> 0x10)" (pointer_expression "*pbVar16" * identifier) = (call_expression "(byte)((uint)uVar41 >> 0x10)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)uVar41 >> 0x10)" ( (binary_expression "(uint)uVar41 >> 0x10" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);" (assignment_expression "*(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8)" (pointer_expression "*(byte *)ppppbStack_108" * (cast_expression "(byte *)ppppbStack_108" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (call_expression "(byte)((uint)uVar41 >> 8)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((uint)uVar41 >> 8)" ( (binary_expression "(uint)uVar41 >> 8" (cast_expression "(uint)uVar41" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*pbVar28 = (byte)uVar41;" (assignment_expression "*pbVar28 = (byte)uVar41" (pointer_expression "*pbVar28" * identifier) = (cast_expression "(byte)uVar41" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" ( (pointer_expression "**(code **)(pcVar40 + 0x388fc)" * (pointer_expression "*(code **)(pcVar40 + 0x388fc)" * (cast_expression "(code **)(pcVar40 + 0x388fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x388fc)" ( (binary_expression "pcVar40 + 0x388fc" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar18 + 4)" * (cast_expression "(undefined4 *)(iVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (labeled_statement "LAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);" statement_identifier : (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(iVar22 + -0x4114)" ( (binary_expression "iVar22 + -0x4114" identifier + number_literal) )))) ;)) (labeled_statement "LAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }" statement_identifier : (while_statement "while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }" while (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (compound_statement "{\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }" { (expression_statement "(**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);" (call_expression "(**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38a34))" ( (pointer_expression "**(code **)(pcVar40 + 0x38a34)" * (pointer_expression "*(code **)(pcVar40 + 0x38a34)" * (cast_expression "(code **)(pcVar40 + 0x38a34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38a34)" ( (binary_expression "pcVar40 + 0x38a34" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3f38" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x42c4" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3e30" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);" statement_identifier : (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x40c8" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier )))) ;)) }))) (expression_statement "FUN_00077910(iVar18,iVar27);" (call_expression "FUN_00077910(iVar18,iVar27)" identifier (argument_list "(iVar18,iVar27)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcVar40 + 0x38124))(iVar27);" (call_expression "(**(code **)(pcVar40 + 0x38124))(iVar27)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(iVar27)" ( identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) (expression_statement "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);" (assignment_expression "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x415c" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (labeled_statement "LAB_000781e4:\n      FUN_00077910(iVar18,uVar41);" statement_identifier : (expression_statement "FUN_00077910(iVar18,uVar41);" (call_expression "FUN_00077910(iVar18,uVar41)" identifier (argument_list "(iVar18,uVar41)" ( identifier , identifier ))) ;)) (expression_statement "(**(code **)(pcVar40 + 0x38124))(uVar41);" (call_expression "(**(code **)(pcVar40 + 0x38124))(uVar41)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" ( (pointer_expression "**(code **)(pcVar40 + 0x38124)" * (pointer_expression "*(code **)(pcVar40 + 0x38124)" * (cast_expression "(code **)(pcVar40 + 0x38124)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38124)" ( (binary_expression "pcVar40 + 0x38124" identifier + number_literal) ))))) )) (argument_list "(uVar41)" ( identifier ))) ;) (expression_statement "param_1 = pbVar25;" (assignment_expression "param_1 = pbVar25" identifier = identifier) ;) (labeled_statement "LAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(iVar18 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x10)" * (cast_expression "(undefined4 *)(iVar18 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x10)" ( (binary_expression "iVar18 + 0x10" identifier + number_literal) )))) = number_literal) ;)) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "uVar30 = *(uint *)(iVar18 + 0x4030);" (assignment_expression "uVar30 = *(uint *)(iVar18 + 0x4030)" identifier = (pointer_expression "*(uint *)(iVar18 + 0x4030)" * (cast_expression "(uint *)(iVar18 + 0x4030)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) ))))) ;) (expression_statement "bVar21 = *pbVar25;" (assignment_expression "bVar21 = *pbVar25" identifier = (pointer_expression "*pbVar25" * identifier)) ;) (expression_statement "pbVar34 = pbVar31 + -1;" (assignment_expression "pbVar34 = pbVar31 + -1" identifier = (binary_expression "pbVar31 + -1" identifier + number_literal)) ;) (expression_statement "pbVar28 = pbVar25 + 1;" (assignment_expression "pbVar28 = pbVar25 + 1" identifier = (binary_expression "pbVar25 + 1" identifier + number_literal)) ;) (if_statement "if (bVar21 == 10) {\nLAB_0007855c:\n    pbVar25 = pbVar28;\n    if (0x2d < uVar30) {\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }\n    uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }" if (parenthesized_expression "(bVar21 == 10)" ( (binary_expression "bVar21 == 10" identifier == number_literal) )) (compound_statement "{\nLAB_0007855c:\n    pbVar25 = pbVar28;\n    if (0x2d < uVar30) {\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }\n    uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }" { (labeled_statement "LAB_0007855c:\n    pbVar25 = pbVar28;" statement_identifier : (expression_statement "pbVar25 = pbVar28;" (assignment_expression "pbVar25 = pbVar28" identifier = identifier) ;)) (if_statement "if (0x2d < uVar30) {\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }" if (parenthesized_expression "(0x2d < uVar30)" ( (binary_expression "0x2d < uVar30" number_literal < identifier) )) (compound_statement "{\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }" { (expression_statement "pppppbVar32 = (byte *****)(iVar18 + 0x20);" (assignment_expression "pppppbVar32 = (byte *****)(iVar18 + 0x20)" identifier = (cast_expression "(byte *****)(iVar18 + 0x20)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(iVar18 + 0x20)" ( (binary_expression "iVar18 + 0x20" identifier + number_literal) )))) ;) (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38bf8))" ( (pointer_expression "**(code **)(pcVar40 + 0x38bf8)" * (pointer_expression "*(code **)(pcVar40 + 0x38bf8)" * (cast_expression "(code **)(pcVar40 + 0x38bf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38bf8)" ( (binary_expression "pcVar40 + 0x38bf8" identifier + number_literal) ))))) )) (argument_list "(pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e)" ( identifier , (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3e10" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (if_statement "if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }" { (if_statement "if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }" if (parenthesized_expression "((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r'))" ( (binary_expression "(0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')" (parenthesized_expression "(0 < (int)uVar30)" ( (binary_expression "0 < (int)uVar30" number_literal < (cast_expression "(int)uVar30" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')" ( (comma_expression "uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r'" (assignment_expression "uVar23 = uVar30 - 1" identifier = (binary_expression "uVar30 - 1" identifier - number_literal)) , (binary_expression "*(char *)(iVar18 + uVar23 + 0x20) == '\r'" (pointer_expression "*(char *)(iVar18 + uVar23 + 0x20)" * (cast_expression "(char *)(iVar18 + uVar23 + 0x20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + uVar23 + 0x20)" ( (binary_expression "iVar18 + uVar23 + 0x20" (binary_expression "iVar18 + uVar23" identifier + identifier) + number_literal) )))) == (char_literal "'\r'" ' escape_sequence '))) ))) )) (compound_statement "{\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }" { (expression_statement "*(uint *)(iVar18 + 0x4030) = uVar23;" (assignment_expression "*(uint *)(iVar18 + 0x4030) = uVar23" (pointer_expression "*(uint *)(iVar18 + 0x4030)" * (cast_expression "(uint *)(iVar18 + 0x4030)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar30 = uVar23;" (assignment_expression "uVar30 = uVar23" identifier = identifier) ;) })) (expression_statement "(**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);" (call_expression "(**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388f4))" ( (pointer_expression "**(code **)(pcVar40 + 0x388f4)" * (pointer_expression "*(code **)(pcVar40 + 0x388f4)" * (cast_expression "(code **)(pcVar40 + 0x388f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x388f4)" ( (binary_expression "pcVar40 + 0x388f4" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32)" ( (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" * (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" ( (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" * (cast_expression "(int *)(iVar18 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0xc)" ( (binary_expression "iVar18 + 0xc" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar18 + 4)" * (cast_expression "(undefined4 *)(iVar18 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 4)" ( (binary_expression "iVar18 + 4" identifier + number_literal) )))) , (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x417c" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x18) = 1;" (assignment_expression "*(undefined4 *)(iVar18 + 0x18) = 1" (pointer_expression "*(undefined4 *)(iVar18 + 0x18)" * (cast_expression "(undefined4 *)(iVar18 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x18)" ( (binary_expression "iVar18 + 0x18" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" * (cast_expression "(undefined4 *)(iVar18 + 0x4030)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000784dc;" goto statement_identifier ;) })) })) (expression_statement "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);" (assignment_expression "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x41ac)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x41ac" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_000781e4;" goto statement_identifier ;) })) (expression_statement "pbVar16 = pbVar31;" (assignment_expression "pbVar16 = pbVar31" identifier = identifier) ;) (if_statement "if (uVar30 < 0x4010) {\n    uVar30 = uVar30 + 1;\n    pbVar26 = pbVar25 + (int)pbVar34;\n    pbVar34 = pbVar31;\n    param_1 = pbVar28;\n    do {\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    } while (uVar30 != 0x4011);\n  }" if (parenthesized_expression "(uVar30 < 0x4010)" ( (binary_expression "uVar30 < 0x4010" identifier < number_literal) )) (compound_statement "{\n    uVar30 = uVar30 + 1;\n    pbVar26 = pbVar25 + (int)pbVar34;\n    pbVar34 = pbVar31;\n    param_1 = pbVar28;\n    do {\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    } while (uVar30 != 0x4011);\n  }" { (expression_statement "uVar30 = uVar30 + 1;" (assignment_expression "uVar30 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) (expression_statement "pbVar26 = pbVar25 + (int)pbVar34;" (assignment_expression "pbVar26 = pbVar25 + (int)pbVar34" identifier = (binary_expression "pbVar25 + (int)pbVar34" identifier + (cast_expression "(int)pbVar34" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "pbVar34 = pbVar31;" (assignment_expression "pbVar34 = pbVar31" identifier = identifier) ;) (expression_statement "param_1 = pbVar28;" (assignment_expression "param_1 = pbVar28" identifier = identifier) ;) (do_statement "do {\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    } while (uVar30 != 0x4011);" do (compound_statement "{\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    }" { (expression_statement "*(uint *)(iVar18 + 0x4030) = uVar30;" (assignment_expression "*(uint *)(iVar18 + 0x4030) = uVar30" (pointer_expression "*(uint *)(iVar18 + 0x4030)" * (cast_expression "(uint *)(iVar18 + 0x4030)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 0x4030)" ( (binary_expression "iVar18 + 0x4030" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;" (assignment_expression "*(byte *)(iVar18 + uVar30 + 0x1f) = bVar21" (pointer_expression "*(byte *)(iVar18 + uVar30 + 0x1f)" * (cast_expression "(byte *)(iVar18 + uVar30 + 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + uVar30 + 0x1f)" ( (binary_expression "iVar18 + uVar30 + 0x1f" (binary_expression "iVar18 + uVar30" identifier + identifier) + number_literal) )))) = identifier) ;) (if_statement "if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;" if (parenthesized_expression "(pbVar25 + (int)pbVar31 == param_1)" ( (binary_expression "pbVar25 + (int)pbVar31 == param_1" (binary_expression "pbVar25 + (int)pbVar31" identifier + (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier)) == identifier) )) (goto_statement "goto LAB_000781c4;" goto statement_identifier ;)) (expression_statement "pbVar34 = pbVar26 + -(int)param_1;" (assignment_expression "pbVar34 = pbVar26 + -(int)param_1" identifier = (binary_expression "pbVar26 + -(int)param_1" identifier + (unary_expression "-(int)param_1" - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (expression_statement "pbVar28 = param_1 + 1;" (assignment_expression "pbVar28 = param_1 + 1" identifier = (binary_expression "param_1 + 1" identifier + number_literal)) ;) (expression_statement "bVar21 = *param_1;" (assignment_expression "bVar21 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (bVar21 == 10) goto LAB_0007855c;" if (parenthesized_expression "(bVar21 == 10)" ( (binary_expression "bVar21 == 10" identifier == number_literal) )) (goto_statement "goto LAB_0007855c;" goto statement_identifier ;)) (expression_statement "uVar30 = uVar30 + 1;" (assignment_expression "uVar30 = uVar30 + 1" identifier = (binary_expression "uVar30 + 1" identifier + number_literal)) ;) (expression_statement "pbVar16 = pbVar34;" (assignment_expression "pbVar16 = pbVar34" identifier = identifier) ;) (expression_statement "param_1 = pbVar28;" (assignment_expression "param_1 = pbVar28" identifier = identifier) ;) }) while (parenthesized_expression "(uVar30 != 0x4011)" ( (binary_expression "uVar30 != 0x4011" identifier != number_literal) )) ;) })) (expression_statement "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc);" (assignment_expression "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc)" identifier = (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" ( (pointer_expression "**(code **)(pcVar40 + 0x38158)" * (pointer_expression "*(code **)(pcVar40 + 0x38158)" * (cast_expression "(code **)(pcVar40 + 0x38158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar40 + 0x38158)" ( (binary_expression "pcVar40 + 0x38158" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x41cc)" ( (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x41cc" (pointer_expression "*(int *)(pcVar40 + 0x38144)" * (cast_expression "(int *)(pcVar40 + 0x38144)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar40 + 0x38144)" ( (binary_expression "pcVar40 + 0x38144" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pbVar34 = pbVar16;" (assignment_expression "pbVar34 = pbVar16" identifier = identifier) ;) (expression_statement "pbVar25 = pbVar28;" (assignment_expression "pbVar25 = pbVar28" identifier = identifier) ;) (goto_statement "goto LAB_000781e4;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (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 (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (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 IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (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 *)) ) IDENT)))) ;) (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 )) * 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 * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT) == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT) == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return ;) })) (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 = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (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) )) (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) ;) })) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (labeled_statement statement_identifier : (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (pointer_expression & IDENT) , LIT , LIT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( 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 : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (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 = (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)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 (binary_expression IDENT + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_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) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT)) )) (compound_statement { (labeled_statement 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + 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 = (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)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (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 != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT , LIT , (pointer_expression & IDENT) )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT >= LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (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 LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT , (pointer_expression & IDENT) , LIT )))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) , (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) | (cast_expression ( (type_descriptor TYPE) ) IDENT)) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) , LIT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , LIT , LIT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , LIT , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (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) ))))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( IDENT ))) * IDENT)) ;) (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 + IDENT) , IDENT , LIT , (pointer_expression & IDENT) )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT >= LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) 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 IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT , (pointer_expression & IDENT) , LIT )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) , (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) << LIT) | (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT)) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , LIT , LIT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , IDENT ))) ;) }))) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT )))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression LIT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )))) , (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 (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (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) )))) , (pointer_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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;)) (expression_statement (call_expression IDENT (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 IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (pointer_expression * IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (pointer_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) )))) = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_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 = (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 (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression IDENT (argument_list ( 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 ( LIT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT , LIT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != (char_literal ' escape_sequence '))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) 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 (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) , LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (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 IDENT + (unary_expression - IDENT)) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression - IDENT)) )))) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT))) | (binary_expression IDENT >> (binary_expression IDENT * LIT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (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 IDENT + (unary_expression - IDENT)) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (unary_expression - IDENT)) )))) & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression IDENT << (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT != (char_literal ' escape_sequence '))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) , (subscript_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ]) [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (subscript_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) IDENT) )) [ LIT ]) [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , IDENT , LIT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (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 (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (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) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) 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) )))) , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) 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) )))) , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (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) )))) = 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) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (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) )))) , IDENT , IDENT , 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) )))) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (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 = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_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 = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) )))) << (binary_expression IDENT * LIT)) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) )) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) )))) >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) 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) )))) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , IDENT ))))) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (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 IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (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 IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , LIT , (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) )))) << (binary_expression IDENT * LIT)) | (binary_expression IDENT & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) )) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) )))) >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * 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 = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (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) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (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) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) << LIT) | (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) << LIT)) | (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) | (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) << LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT , IDENT , LIT , LIT , (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) | (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) << LIT)) | (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) | (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) << LIT)) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;)) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_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 IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT )))) ;)) }))) (expression_statement (call_expression IDENT (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 IDENT + LIT) ))))) )) (argument_list ( 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 ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT )))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (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 IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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) ;)) }) while (parenthesized_expression ( BOOL )) ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (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 IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT - LIT)) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) == (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (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 = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (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 (binary_expression IDENT + IDENT) + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "void share_xchannel_confirmation(byte *param_1,int param_2,undefined4 *param_3,int param_4)\n\n{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  byte bVar4;\n  char cVar5;\n  char cVar6;\n  undefined1 uVar7;\n  undefined1 uVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  int iVar11;\n  byte ****ppppbVar12;\n  int iVar13;\n  byte ****ppppbVar14;\n  undefined1 *puVar15;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  byte bVar21;\n  undefined4 uVar19;\n  undefined4 *puVar20;\n  int iVar22;\n  uint uVar23;\n  undefined1 *puVar24;\n  byte *pbVar25;\n  byte *pbVar26;\n  int iVar27;\n  uint in_t3;\n  byte *pbVar28;\n  undefined4 *puVar29;\n  uint uVar30;\n  byte *pbVar31;\n  undefined4 *unaff_s1;\n  undefined *unaff_s2;\n  byte *****pppppbVar32;\n  byte *****pppppbVar33;\n  undefined4 *unaff_s3;\n  byte *unaff_s4;\n  byte *pbVar34;\n  byte *****pppppbVar35;\n  byte *****pppppbVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  int *piVar39;\n  code *pcVar40;\n  undefined4 uVar41;\n  byte ****ppppbStack_108;\n  byte ****ppppbStack_e8;\n  byte ****ppppbStack_e4;\n  undefined4 uStack_e0;\n  byte ***pppbStack_c0;\n  int iStack_bc;\n  int iStack_b8;\n  int iStack_b4;\n  byte ****ppppbStack_b0;\n  undefined4 *puStack_ac;\n  byte *pbStack_a8;\n  byte *pbStack_a4;\n  undefined *puStack_a0;\n  int iStack_9c;\n  int iStack_98;\n  undefined4 uStack_94;\n  undefined4 uStack_80;\n  int iStack_7c;\n  undefined *puStack_78;\n  undefined4 uStack_70;\n  byte ***pppbStack_6c;\n  undefined4 *puStack_68;\n  undefined4 *puStack_64;\n  undefined *puStack_60;\n  code *pcStack_5c;\n  undefined4 *local_48;\n  undefined4 *local_44;\n  undefined4 local_34;\n  undefined1 local_30;\n  undefined1 local_2f;\n  undefined1 local_2e;\n  undefined1 local_2d;\n  int local_2c;\n  \n  pppppbVar35 = (byte *****)PTR___stack_chk_guard_000b0c9c;\n  puVar29 = *(undefined4 **)(param_2 + 0x10);\n  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;\n  if (puVar29 != (undefined4 *)0x0) {\n    unaff_s4 = param_1 + 8;\n    unaff_s3 = param_3 + 3;\n    unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;\n    do {\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    } while (puVar29 != (undefined4 *)0x0);\n  }\n  local_34 = *(undefined4 *)(param_2 + 4);\n  param_4 = param_4 - *(int *)(param_2 + 0xc);\n  iVar27 = *(int *)(*(int *)(param_1 + 0xc) + 0x14);\n  local_44 = (undefined4 *)(PTR_DAT_000b01d0 + -0x4224);\n  iVar22 = *(int *)(param_1 + 4);\n  local_30 = (undefined1)((uint)param_4 >> 0x18);\n  local_2e = (undefined1)((uint)param_4 >> 8);\n  local_48 = (undefined4 *)0x8;\n  local_2f = (undefined1)((uint)param_4 >> 0x10);\n  local_2d = (undefined1)param_4;\n  (*(code *)PTR_ssh_send_packet_from_downstream_000b0988)(iVar27,iVar22,0x5d,&local_34);\n  if ((byte ****)local_2c == *pppppbVar35) {\n    return;\n  }\n  pcVar40 = share_xchannel_failure;\n  puVar37 = PTR___stack_chk_fail_000b0c70;\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\n  puStack_78 = puVar37 + 0x40180;\n  uStack_70 = *(undefined4 *)(iVar22 + 4);\n  pbVar25 = &DAT_00000061;\n  pbVar31 = (byte *)&uStack_70;\n  pppppbVar32 = *(byte ******)(puVar37 + 0x38ccc);\n  iStack_7c = *(int *)(puVar37 + 0x38200) + -0x4248;\n  pppbStack_6c = (byte ***)*pppppbVar32;\n  uStack_80 = 4;\n  puStack_68 = puVar29;\n  puStack_64 = unaff_s1;\n  puStack_60 = unaff_s2;\n  pcStack_5c = pcVar40;\n  (**(code **)(puVar37 + 0x389b8))\n            (*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4));\n  *(undefined4 *)(iVar22 + 8) = 0;\n  iVar18 = iVar27;\n  share_dead_xchannel_respond(iVar27,iVar22);\n  if ((byte ****)pppbStack_6c == *pppppbVar32) {\n    return;\n  }\n  pcVar40 = *(code **)(puStack_78 + -0x74e0);\n  uVar41 = 0x7808c;\n  (*pcVar40)();\n  iVar11 = *(int *)(iVar18 + 0x10);\n  piVar39 = *(int **)(pcVar40 + 0x38c10);\n  puStack_a0 = (undefined *)pppppbVar35;\n  iStack_bc = *piVar39;\n  pbVar34 = pbVar31;\n  iStack_b8 = iVar22;\n  iStack_b4 = iVar27;\n  ppppbStack_b0 = (byte ****)pppppbVar32;\n  puStack_ac = unaff_s3;\n  pbStack_a8 = unaff_s4;\n  pbStack_a4 = param_1;\n  iStack_9c = param_4;\n  iStack_98 = param_2;\n  uStack_94 = uVar41;\n  if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar11 != 0) goto LAB_00078210;\n    *(undefined4 *)(iVar18 + 0x4030) = 0;\n  }\n  if (pbVar31 == (byte *)0x0) {\nLAB_000781c4:\n    *(undefined4 *)(iVar18 + 0x10) = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );\n  }\n  uVar30 = *(uint *)(iVar18 + 0x4030);\n  bVar21 = *pbVar25;\n  pbVar34 = pbVar31 + -1;\n  pbVar28 = pbVar25 + 1;\n  if (bVar21 == 10) {\nLAB_0007855c:\n    pbVar25 = pbVar28;\n    if (0x2d < uVar30) {\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }\n    uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }\n  pbVar16 = pbVar31;\n  if (uVar30 < 0x4010) {\n    uVar30 = uVar30 + 1;\n    pbVar26 = pbVar25 + (int)pbVar34;\n    pbVar34 = pbVar31;\n    param_1 = pbVar28;\n    do {\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    } while (uVar30 != 0x4011);\n  }\n  uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc);\n  pbVar34 = pbVar16;\n  pbVar25 = pbVar28;\n  goto LAB_000781e4;\n}" (primitive_type "void") (function_declarator "share_xchannel_confirmation(byte *param_1,int param_2,undefined4 *param_3,int param_4)" (identifier "share_xchannel_confirmation") (parameter_list "(byte *param_1,int param_2,undefined4 *param_3,int param_4)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  byte bVar1;\n  byte bVar2;\n  byte bVar3;\n  byte bVar4;\n  char cVar5;\n  char cVar6;\n  undefined1 uVar7;\n  undefined1 uVar8;\n  undefined1 uVar9;\n  bool bVar10;\n  int iVar11;\n  byte ****ppppbVar12;\n  int iVar13;\n  byte ****ppppbVar14;\n  undefined1 *puVar15;\n  byte *pbVar16;\n  undefined4 *puVar17;\n  int iVar18;\n  byte bVar21;\n  undefined4 uVar19;\n  undefined4 *puVar20;\n  int iVar22;\n  uint uVar23;\n  undefined1 *puVar24;\n  byte *pbVar25;\n  byte *pbVar26;\n  int iVar27;\n  uint in_t3;\n  byte *pbVar28;\n  undefined4 *puVar29;\n  uint uVar30;\n  byte *pbVar31;\n  undefined4 *unaff_s1;\n  undefined *unaff_s2;\n  byte *****pppppbVar32;\n  byte *****pppppbVar33;\n  undefined4 *unaff_s3;\n  byte *unaff_s4;\n  byte *pbVar34;\n  byte *****pppppbVar35;\n  byte *****pppppbVar36;\n  undefined *puVar37;\n  code *pcVar38;\n  int *piVar39;\n  code *pcVar40;\n  undefined4 uVar41;\n  byte ****ppppbStack_108;\n  byte ****ppppbStack_e8;\n  byte ****ppppbStack_e4;\n  undefined4 uStack_e0;\n  byte ***pppbStack_c0;\n  int iStack_bc;\n  int iStack_b8;\n  int iStack_b4;\n  byte ****ppppbStack_b0;\n  undefined4 *puStack_ac;\n  byte *pbStack_a8;\n  byte *pbStack_a4;\n  undefined *puStack_a0;\n  int iStack_9c;\n  int iStack_98;\n  undefined4 uStack_94;\n  undefined4 uStack_80;\n  int iStack_7c;\n  undefined *puStack_78;\n  undefined4 uStack_70;\n  byte ***pppbStack_6c;\n  undefined4 *puStack_68;\n  undefined4 *puStack_64;\n  undefined *puStack_60;\n  code *pcStack_5c;\n  undefined4 *local_48;\n  undefined4 *local_44;\n  undefined4 local_34;\n  undefined1 local_30;\n  undefined1 local_2f;\n  undefined1 local_2e;\n  undefined1 local_2d;\n  int local_2c;\n  \n  pppppbVar35 = (byte *****)PTR___stack_chk_guard_000b0c9c;\n  puVar29 = *(undefined4 **)(param_2 + 0x10);\n  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;\n  if (puVar29 != (undefined4 *)0x0) {\n    unaff_s4 = param_1 + 8;\n    unaff_s3 = param_3 + 3;\n    unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;\n    do {\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    } while (puVar29 != (undefined4 *)0x0);\n  }\n  local_34 = *(undefined4 *)(param_2 + 4);\n  param_4 = param_4 - *(int *)(param_2 + 0xc);\n  iVar27 = *(int *)(*(int *)(param_1 + 0xc) + 0x14);\n  local_44 = (undefined4 *)(PTR_DAT_000b01d0 + -0x4224);\n  iVar22 = *(int *)(param_1 + 4);\n  local_30 = (undefined1)((uint)param_4 >> 0x18);\n  local_2e = (undefined1)((uint)param_4 >> 8);\n  local_48 = (undefined4 *)0x8;\n  local_2f = (undefined1)((uint)param_4 >> 0x10);\n  local_2d = (undefined1)param_4;\n  (*(code *)PTR_ssh_send_packet_from_downstream_000b0988)(iVar27,iVar22,0x5d,&local_34);\n  if ((byte ****)local_2c == *pppppbVar35) {\n    return;\n  }\n  pcVar40 = share_xchannel_failure;\n  puVar37 = PTR___stack_chk_fail_000b0c70;\n  (*(code *)PTR___stack_chk_fail_000b0c70)();\n  puStack_78 = puVar37 + 0x40180;\n  uStack_70 = *(undefined4 *)(iVar22 + 4);\n  pbVar25 = &DAT_00000061;\n  pbVar31 = (byte *)&uStack_70;\n  pppppbVar32 = *(byte ******)(puVar37 + 0x38ccc);\n  iStack_7c = *(int *)(puVar37 + 0x38200) + -0x4248;\n  pppbStack_6c = (byte ***)*pppppbVar32;\n  uStack_80 = 4;\n  puStack_68 = puVar29;\n  puStack_64 = unaff_s1;\n  puStack_60 = unaff_s2;\n  pcStack_5c = pcVar40;\n  (**(code **)(puVar37 + 0x389b8))\n            (*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4));\n  *(undefined4 *)(iVar22 + 8) = 0;\n  iVar18 = iVar27;\n  share_dead_xchannel_respond(iVar27,iVar22);\n  if ((byte ****)pppbStack_6c == *pppppbVar32) {\n    return;\n  }\n  pcVar40 = *(code **)(puStack_78 + -0x74e0);\n  uVar41 = 0x7808c;\n  (*pcVar40)();\n  iVar11 = *(int *)(iVar18 + 0x10);\n  piVar39 = *(int **)(pcVar40 + 0x38c10);\n  puStack_a0 = (undefined *)pppppbVar35;\n  iStack_bc = *piVar39;\n  pbVar34 = pbVar31;\n  iStack_b8 = iVar22;\n  iStack_b4 = iVar27;\n  ppppbStack_b0 = (byte ****)pppppbVar32;\n  puStack_ac = unaff_s3;\n  pbStack_a8 = unaff_s4;\n  pbStack_a4 = param_1;\n  iStack_9c = param_4;\n  iStack_98 = param_2;\n  uStack_94 = uVar41;\n  if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar11 != 0) goto LAB_00078210;\n    *(undefined4 *)(iVar18 + 0x4030) = 0;\n  }\n  if (pbVar31 == (byte *)0x0) {\nLAB_000781c4:\n    *(undefined4 *)(iVar18 + 0x10) = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );\n  }\n  uVar30 = *(uint *)(iVar18 + 0x4030);\n  bVar21 = *pbVar25;\n  pbVar34 = pbVar31 + -1;\n  pbVar28 = pbVar25 + 1;\n  if (bVar21 == 10) {\nLAB_0007855c:\n    pbVar25 = pbVar28;\n    if (0x2d < uVar30) {\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }\n    uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }\n  pbVar16 = pbVar31;\n  if (uVar30 < 0x4010) {\n    uVar30 = uVar30 + 1;\n    pbVar26 = pbVar25 + (int)pbVar34;\n    pbVar34 = pbVar31;\n    param_1 = pbVar28;\n    do {\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    } while (uVar30 != 0x4011);\n  }\n  uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc);\n  pbVar34 = pbVar16;\n  pbVar25 = pbVar28;\n  goto LAB_000781e4;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "byte bVar4;" (type_identifier "byte") (identifier "bVar4") (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "char cVar6;" (primitive_type "char") (identifier "cVar6") (; ";")) (declaration "undefined1 uVar7;" (type_identifier "undefined1") (identifier "uVar7") (; ";")) (declaration "undefined1 uVar8;" (type_identifier "undefined1") (identifier "uVar8") (; ";")) (declaration "undefined1 uVar9;" (type_identifier "undefined1") (identifier "uVar9") (; ";")) (declaration "bool bVar10;" (primitive_type "bool") (identifier "bVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "byte ****ppppbVar12;" (type_identifier "byte") (pointer_declarator "****ppppbVar12" (* "*") (pointer_declarator "***ppppbVar12" (* "*") (pointer_declarator "**ppppbVar12" (* "*") (pointer_declarator "*ppppbVar12" (* "*") (identifier "ppppbVar12"))))) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "byte ****ppppbVar14;" (type_identifier "byte") (pointer_declarator "****ppppbVar14" (* "*") (pointer_declarator "***ppppbVar14" (* "*") (pointer_declarator "**ppppbVar14" (* "*") (pointer_declarator "*ppppbVar14" (* "*") (identifier "ppppbVar14"))))) (; ";")) (declaration "undefined1 *puVar15;" (type_identifier "undefined1") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "undefined4 *puVar17;" (type_identifier "undefined4") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "byte bVar21;" (type_identifier "byte") (identifier "bVar21") (; ";")) (declaration "undefined4 uVar19;" (type_identifier "undefined4") (identifier "uVar19") (; ";")) (declaration "undefined4 *puVar20;" (type_identifier "undefined4") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "int iVar22;" (primitive_type "int") (identifier "iVar22") (; ";")) (declaration "uint uVar23;" (type_identifier "uint") (identifier "uVar23") (; ";")) (declaration "undefined1 *puVar24;" (type_identifier "undefined1") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "byte *pbVar25;" (type_identifier "byte") (pointer_declarator "*pbVar25" (* "*") (identifier "pbVar25")) (; ";")) (declaration "byte *pbVar26;" (type_identifier "byte") (pointer_declarator "*pbVar26" (* "*") (identifier "pbVar26")) (; ";")) (declaration "int iVar27;" (primitive_type "int") (identifier "iVar27") (; ";")) (declaration "uint in_t3;" (type_identifier "uint") (identifier "in_t3") (; ";")) (declaration "byte *pbVar28;" (type_identifier "byte") (pointer_declarator "*pbVar28" (* "*") (identifier "pbVar28")) (; ";")) (declaration "undefined4 *puVar29;" (type_identifier "undefined4") (pointer_declarator "*puVar29" (* "*") (identifier "puVar29")) (; ";")) (declaration "uint uVar30;" (type_identifier "uint") (identifier "uVar30") (; ";")) (declaration "byte *pbVar31;" (type_identifier "byte") (pointer_declarator "*pbVar31" (* "*") (identifier "pbVar31")) (; ";")) (declaration "undefined4 *unaff_s1;" (type_identifier "undefined4") (pointer_declarator "*unaff_s1" (* "*") (identifier "unaff_s1")) (; ";")) (declaration "undefined *unaff_s2;" (type_identifier "undefined") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "byte *****pppppbVar32;" (type_identifier "byte") (pointer_declarator "*****pppppbVar32" (* "*") (pointer_declarator "****pppppbVar32" (* "*") (pointer_declarator "***pppppbVar32" (* "*") (pointer_declarator "**pppppbVar32" (* "*") (pointer_declarator "*pppppbVar32" (* "*") (identifier "pppppbVar32")))))) (; ";")) (declaration "byte *****pppppbVar33;" (type_identifier "byte") (pointer_declarator "*****pppppbVar33" (* "*") (pointer_declarator "****pppppbVar33" (* "*") (pointer_declarator "***pppppbVar33" (* "*") (pointer_declarator "**pppppbVar33" (* "*") (pointer_declarator "*pppppbVar33" (* "*") (identifier "pppppbVar33")))))) (; ";")) (declaration "undefined4 *unaff_s3;" (type_identifier "undefined4") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "byte *unaff_s4;" (type_identifier "byte") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "byte *pbVar34;" (type_identifier "byte") (pointer_declarator "*pbVar34" (* "*") (identifier "pbVar34")) (; ";")) (declaration "byte *****pppppbVar35;" (type_identifier "byte") (pointer_declarator "*****pppppbVar35" (* "*") (pointer_declarator "****pppppbVar35" (* "*") (pointer_declarator "***pppppbVar35" (* "*") (pointer_declarator "**pppppbVar35" (* "*") (pointer_declarator "*pppppbVar35" (* "*") (identifier "pppppbVar35")))))) (; ";")) (declaration "byte *****pppppbVar36;" (type_identifier "byte") (pointer_declarator "*****pppppbVar36" (* "*") (pointer_declarator "****pppppbVar36" (* "*") (pointer_declarator "***pppppbVar36" (* "*") (pointer_declarator "**pppppbVar36" (* "*") (pointer_declarator "*pppppbVar36" (* "*") (identifier "pppppbVar36")))))) (; ";")) (declaration "undefined *puVar37;" (type_identifier "undefined") (pointer_declarator "*puVar37" (* "*") (identifier "puVar37")) (; ";")) (declaration "code *pcVar38;" (type_identifier "code") (pointer_declarator "*pcVar38" (* "*") (identifier "pcVar38")) (; ";")) (declaration "int *piVar39;" (primitive_type "int") (pointer_declarator "*piVar39" (* "*") (identifier "piVar39")) (; ";")) (declaration "code *pcVar40;" (type_identifier "code") (pointer_declarator "*pcVar40" (* "*") (identifier "pcVar40")) (; ";")) (declaration "undefined4 uVar41;" (type_identifier "undefined4") (identifier "uVar41") (; ";")) (declaration "byte ****ppppbStack_108;" (type_identifier "byte") (pointer_declarator "****ppppbStack_108" (* "*") (pointer_declarator "***ppppbStack_108" (* "*") (pointer_declarator "**ppppbStack_108" (* "*") (pointer_declarator "*ppppbStack_108" (* "*") (identifier "ppppbStack_108"))))) (; ";")) (declaration "byte ****ppppbStack_e8;" (type_identifier "byte") (pointer_declarator "****ppppbStack_e8" (* "*") (pointer_declarator "***ppppbStack_e8" (* "*") (pointer_declarator "**ppppbStack_e8" (* "*") (pointer_declarator "*ppppbStack_e8" (* "*") (identifier "ppppbStack_e8"))))) (; ";")) (declaration "byte ****ppppbStack_e4;" (type_identifier "byte") (pointer_declarator "****ppppbStack_e4" (* "*") (pointer_declarator "***ppppbStack_e4" (* "*") (pointer_declarator "**ppppbStack_e4" (* "*") (pointer_declarator "*ppppbStack_e4" (* "*") (identifier "ppppbStack_e4"))))) (; ";")) (declaration "undefined4 uStack_e0;" (type_identifier "undefined4") (identifier "uStack_e0") (; ";")) (declaration "byte ***pppbStack_c0;" (type_identifier "byte") (pointer_declarator "***pppbStack_c0" (* "*") (pointer_declarator "**pppbStack_c0" (* "*") (pointer_declarator "*pppbStack_c0" (* "*") (identifier "pppbStack_c0")))) (; ";")) (declaration "int iStack_bc;" (primitive_type "int") (identifier "iStack_bc") (; ";")) (declaration "int iStack_b8;" (primitive_type "int") (identifier "iStack_b8") (; ";")) (declaration "int iStack_b4;" (primitive_type "int") (identifier "iStack_b4") (; ";")) (declaration "byte ****ppppbStack_b0;" (type_identifier "byte") (pointer_declarator "****ppppbStack_b0" (* "*") (pointer_declarator "***ppppbStack_b0" (* "*") (pointer_declarator "**ppppbStack_b0" (* "*") (pointer_declarator "*ppppbStack_b0" (* "*") (identifier "ppppbStack_b0"))))) (; ";")) (declaration "undefined4 *puStack_ac;" (type_identifier "undefined4") (pointer_declarator "*puStack_ac" (* "*") (identifier "puStack_ac")) (; ";")) (declaration "byte *pbStack_a8;" (type_identifier "byte") (pointer_declarator "*pbStack_a8" (* "*") (identifier "pbStack_a8")) (; ";")) (declaration "byte *pbStack_a4;" (type_identifier "byte") (pointer_declarator "*pbStack_a4" (* "*") (identifier "pbStack_a4")) (; ";")) (declaration "undefined *puStack_a0;" (type_identifier "undefined") (pointer_declarator "*puStack_a0" (* "*") (identifier "puStack_a0")) (; ";")) (declaration "int iStack_9c;" (primitive_type "int") (identifier "iStack_9c") (; ";")) (declaration "int iStack_98;" (primitive_type "int") (identifier "iStack_98") (; ";")) (declaration "undefined4 uStack_94;" (type_identifier "undefined4") (identifier "uStack_94") (; ";")) (declaration "undefined4 uStack_80;" (type_identifier "undefined4") (identifier "uStack_80") (; ";")) (declaration "int iStack_7c;" (primitive_type "int") (identifier "iStack_7c") (; ";")) (declaration "undefined *puStack_78;" (type_identifier "undefined") (pointer_declarator "*puStack_78" (* "*") (identifier "puStack_78")) (; ";")) (declaration "undefined4 uStack_70;" (type_identifier "undefined4") (identifier "uStack_70") (; ";")) (declaration "byte ***pppbStack_6c;" (type_identifier "byte") (pointer_declarator "***pppbStack_6c" (* "*") (pointer_declarator "**pppbStack_6c" (* "*") (pointer_declarator "*pppbStack_6c" (* "*") (identifier "pppbStack_6c")))) (; ";")) (declaration "undefined4 *puStack_68;" (type_identifier "undefined4") (pointer_declarator "*puStack_68" (* "*") (identifier "puStack_68")) (; ";")) (declaration "undefined4 *puStack_64;" (type_identifier "undefined4") (pointer_declarator "*puStack_64" (* "*") (identifier "puStack_64")) (; ";")) (declaration "undefined *puStack_60;" (type_identifier "undefined") (pointer_declarator "*puStack_60" (* "*") (identifier "puStack_60")) (; ";")) (declaration "code *pcStack_5c;" (type_identifier "code") (pointer_declarator "*pcStack_5c" (* "*") (identifier "pcStack_5c")) (; ";")) (declaration "undefined4 *local_48;" (type_identifier "undefined4") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "undefined4 *local_44;" (type_identifier "undefined4") (pointer_declarator "*local_44" (* "*") (identifier "local_44")) (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined1 local_30;" (type_identifier "undefined1") (identifier "local_30") (; ";")) (declaration "undefined1 local_2f;" (type_identifier "undefined1") (identifier "local_2f") (; ";")) (declaration "undefined1 local_2e;" (type_identifier "undefined1") (identifier "local_2e") (; ";")) (declaration "undefined1 local_2d;" (type_identifier "undefined1") (identifier "local_2d") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "pppppbVar35 = (byte *****)PTR___stack_chk_guard_000b0c9c;" (assignment_expression "pppppbVar35 = (byte *****)PTR___stack_chk_guard_000b0c9c" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)PTR___stack_chk_guard_000b0c9c" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "PTR___stack_chk_guard_000b0c9c"))) (; ";")) (expression_statement "puVar29 = *(undefined4 **)(param_2 + 0x10);" (assignment_expression "puVar29 = *(undefined4 **)(param_2 + 0x10)" (identifier "puVar29") (= "=") (pointer_expression "*(undefined4 **)(param_2 + 0x10)" (* "*") (cast_expression "(undefined4 **)(param_2 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000b0c9c" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000b0c9c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000b0c9c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000b0c9c")))) (; ";")) (if_statement "if (puVar29 != (undefined4 *)0x0) {\n    unaff_s4 = param_1 + 8;\n    unaff_s3 = param_3 + 3;\n    unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;\n    do {\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    } while (puVar29 != (undefined4 *)0x0);\n  }" (if "if") (parenthesized_expression "(puVar29 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar29 != (undefined4 *)0x0" (identifier "puVar29") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    unaff_s4 = param_1 + 8;\n    unaff_s3 = param_3 + 3;\n    unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;\n    do {\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    } while (puVar29 != (undefined4 *)0x0);\n  }" ({ "{") (expression_statement "unaff_s4 = param_1 + 8;" (assignment_expression "unaff_s4 = param_1 + 8" (identifier "unaff_s4") (= "=") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "unaff_s3 = param_3 + 3;" (assignment_expression "unaff_s3 = param_3 + 3" (identifier "unaff_s3") (= "=") (binary_expression "param_3 + 3" (identifier "param_3") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;" (assignment_expression "unaff_s2 = PTR_LAB_000b08e8 + 0x68e4" (identifier "unaff_s2") (= "=") (binary_expression "PTR_LAB_000b08e8 + 0x68e4" (identifier "PTR_LAB_000b08e8") (+ "+") (number_literal "0x68e4"))) (; ";")) (do_statement "do {\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    } while (puVar29 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n      iVar27 = puVar29[3];\n      puVar24 = (undefined1 *)puVar29[2];\n      *(undefined4 *)(param_2 + 0x10) = *puVar29;\n      if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }\n      local_48 = param_3;\n      local_44 = unaff_s3;\n      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);\n      (*(code *)PTR_safefree_000b01b0)(puVar29);\n      puVar29 = *(undefined4 **)(param_2 + 0x10);\n      unaff_s1 = param_3;\n    }" ({ "{") (expression_statement "iVar27 = puVar29[3];" (assignment_expression "iVar27 = puVar29[3]" (identifier "iVar27") (= "=") (subscript_expression "puVar29[3]" (identifier "puVar29") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar24 = (undefined1 *)puVar29[2];" (assignment_expression "puVar24 = (undefined1 *)puVar29[2]" (identifier "puVar24") (= "=") (cast_expression "(undefined1 *)puVar29[2]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar29[2]" (identifier "puVar29") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "*(undefined4 *)(param_2 + 0x10) = *puVar29;" (assignment_expression "*(undefined4 *)(param_2 + 0x10) = *puVar29" (pointer_expression "*(undefined4 *)(param_2 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (pointer_expression "*puVar29" (* "*") (identifier "puVar29"))) (; ";")) (if_statement "if (3 < iVar27) {\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }" (if "if") (parenthesized_expression "(3 < iVar27)" (( "(") (binary_expression "3 < iVar27" (number_literal "3") (< "<") (identifier "iVar27")) () ")")) (compound_statement "{\n        *puVar24 = *(undefined1 *)param_3;\n        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;\n        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);\n        *(char *)(puVar29[2] + 3) = (char)*param_3;\n        puVar24 = (undefined1 *)puVar29[2];\n        iVar27 = puVar29[3];\n      }" ({ "{") (expression_statement "*puVar24 = *(undefined1 *)param_3;" (assignment_expression "*puVar24 = *(undefined1 *)param_3" (pointer_expression "*puVar24" (* "*") (identifier "puVar24")) (= "=") (pointer_expression "*(undefined1 *)param_3" (* "*") (cast_expression "(undefined1 *)param_3" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_3")))) (; ";")) (expression_statement "*(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;" (assignment_expression "*(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3" (pointer_expression "*(char *)(puVar29[2] + 1)" (* "*") (cast_expression "(char *)(puVar29[2] + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar29[2] + 1)" (( "(") (binary_expression "puVar29[2] + 1" (subscript_expression "puVar29[2]" (identifier "puVar29") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "1")) () ")")))) (= "=") (cast_expression "(char)*(undefined2 *)param_3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(undefined2 *)param_3" (* "*") (cast_expression "(undefined2 *)param_3" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_3"))))) (; ";")) (expression_statement "*(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);" (assignment_expression "*(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8)" (pointer_expression "*(char *)(puVar29[2] + 2)" (* "*") (cast_expression "(char *)(puVar29[2] + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar29[2] + 2)" (( "(") (binary_expression "puVar29[2] + 2" (subscript_expression "puVar29[2]" (identifier "puVar29") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "2")) () ")")))) (= "=") (cast_expression "(char)((uint)*param_3 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)*param_3 >> 8)" (( "(") (binary_expression "(uint)*param_3 >> 8" (binary_expression "(uint)*param_3" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "param_3")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*(char *)(puVar29[2] + 3) = (char)*param_3;" (assignment_expression "*(char *)(puVar29[2] + 3) = (char)*param_3" (pointer_expression "*(char *)(puVar29[2] + 3)" (* "*") (cast_expression "(char *)(puVar29[2] + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar29[2] + 3)" (( "(") (binary_expression "puVar29[2] + 3" (subscript_expression "puVar29[2]" (identifier "puVar29") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "3")) () ")")))) (= "=") (cast_expression "(char)*param_3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (expression_statement "puVar24 = (undefined1 *)puVar29[2];" (assignment_expression "puVar24 = (undefined1 *)puVar29[2]" (identifier "puVar24") (= "=") (cast_expression "(undefined1 *)puVar29[2]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar29[2]" (identifier "puVar29") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "iVar27 = puVar29[3];" (assignment_expression "iVar27 = puVar29[3]" (identifier "iVar27") (= "=") (subscript_expression "puVar29[3]" (identifier "puVar29") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}"))) (expression_statement "local_48 = param_3;" (assignment_expression "local_48 = param_3" (identifier "local_48") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_44 = unaff_s3;" (assignment_expression "local_44 = unaff_s3" (identifier "local_44") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);" (call_expression "FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27)" (identifier "FUN_000768e4") (argument_list "(unaff_s4,puVar29[1],puVar24,iVar27)" (( "(") (identifier "unaff_s4") (, ",") (subscript_expression "puVar29[1]" (identifier "puVar29") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "puVar24") (, ",") (identifier "iVar27") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_safefree_000b01b0)(puVar29);" (call_expression "(*(code *)PTR_safefree_000b01b0)(puVar29)" (parenthesized_expression "(*(code *)PTR_safefree_000b01b0)" (( "(") (pointer_expression "*(code *)PTR_safefree_000b01b0" (* "*") (cast_expression "(code *)PTR_safefree_000b01b0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safefree_000b01b0"))) () ")")) (argument_list "(puVar29)" (( "(") (identifier "puVar29") () ")"))) (; ";")) (expression_statement "puVar29 = *(undefined4 **)(param_2 + 0x10);" (assignment_expression "puVar29 = *(undefined4 **)(param_2 + 0x10)" (identifier "puVar29") (= "=") (pointer_expression "*(undefined4 **)(param_2 + 0x10)" (* "*") (cast_expression "(undefined4 **)(param_2 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "unaff_s1 = param_3;" (assignment_expression "unaff_s1 = param_3" (identifier "unaff_s1") (= "=") (identifier "param_3")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar29 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar29 != (undefined4 *)0x0" (identifier "puVar29") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "local_34 = *(undefined4 *)(param_2 + 4);" (assignment_expression "local_34 = *(undefined4 *)(param_2 + 4)" (identifier "local_34") (= "=") (pointer_expression "*(undefined4 *)(param_2 + 4)" (* "*") (cast_expression "(undefined4 *)(param_2 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "param_4 = param_4 - *(int *)(param_2 + 0xc);" (assignment_expression "param_4 = param_4 - *(int *)(param_2 + 0xc)" (identifier "param_4") (= "=") (binary_expression "param_4 - *(int *)(param_2 + 0xc)" (identifier "param_4") (- "-") (pointer_expression "*(int *)(param_2 + 0xc)" (* "*") (cast_expression "(int *)(param_2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (expression_statement "iVar27 = *(int *)(*(int *)(param_1 + 0xc) + 0x14);" (assignment_expression "iVar27 = *(int *)(*(int *)(param_1 + 0xc) + 0x14)" (identifier "iVar27") (= "=") (pointer_expression "*(int *)(*(int *)(param_1 + 0xc) + 0x14)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0xc) + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) + 0x14" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_44 = (undefined4 *)(PTR_DAT_000b01d0 + -0x4224);" (assignment_expression "local_44 = (undefined4 *)(PTR_DAT_000b01d0 + -0x4224)" (identifier "local_44") (= "=") (cast_expression "(undefined4 *)(PTR_DAT_000b01d0 + -0x4224)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000b01d0 + -0x4224)" (( "(") (binary_expression "PTR_DAT_000b01d0 + -0x4224" (identifier "PTR_DAT_000b01d0") (+ "+") (number_literal "-0x4224")) () ")")))) (; ";")) (expression_statement "iVar22 = *(int *)(param_1 + 4);" (assignment_expression "iVar22 = *(int *)(param_1 + 4)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_30 = (undefined1)((uint)param_4 >> 0x18);" (assignment_expression "local_30 = (undefined1)((uint)param_4 >> 0x18)" (identifier "local_30") (= "=") (call_expression "(undefined1)((uint)param_4 >> 0x18)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((uint)param_4 >> 0x18)" (( "(") (binary_expression "(uint)param_4 >> 0x18" (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "local_2e = (undefined1)((uint)param_4 >> 8);" (assignment_expression "local_2e = (undefined1)((uint)param_4 >> 8)" (identifier "local_2e") (= "=") (call_expression "(undefined1)((uint)param_4 >> 8)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((uint)param_4 >> 8)" (( "(") (binary_expression "(uint)param_4 >> 8" (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "local_48 = (undefined4 *)0x8;" (assignment_expression "local_48 = (undefined4 *)0x8" (identifier "local_48") (= "=") (cast_expression "(undefined4 *)0x8" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x8"))) (; ";")) (expression_statement "local_2f = (undefined1)((uint)param_4 >> 0x10);" (assignment_expression "local_2f = (undefined1)((uint)param_4 >> 0x10)" (identifier "local_2f") (= "=") (call_expression "(undefined1)((uint)param_4 >> 0x10)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "((uint)param_4 >> 0x10)" (( "(") (binary_expression "(uint)param_4 >> 0x10" (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "local_2d = (undefined1)param_4;" (assignment_expression "local_2d = (undefined1)param_4" (identifier "local_2d") (= "=") (cast_expression "(undefined1)param_4" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "param_4"))) (; ";")) (expression_statement "(*(code *)PTR_ssh_send_packet_from_downstream_000b0988)(iVar27,iVar22,0x5d,&local_34);" (call_expression "(*(code *)PTR_ssh_send_packet_from_downstream_000b0988)(iVar27,iVar22,0x5d,&local_34)" (parenthesized_expression "(*(code *)PTR_ssh_send_packet_from_downstream_000b0988)" (( "(") (pointer_expression "*(code *)PTR_ssh_send_packet_from_downstream_000b0988" (* "*") (cast_expression "(code *)PTR_ssh_send_packet_from_downstream_000b0988" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ssh_send_packet_from_downstream_000b0988"))) () ")")) (argument_list "(iVar27,iVar22,0x5d,&local_34)" (( "(") (identifier "iVar27") (, ",") (identifier "iVar22") (, ",") (number_literal "0x5d") (, ",") (pointer_expression "&local_34" (& "&") (identifier "local_34")) () ")"))) (; ";")) (if_statement "if ((byte ****)local_2c == *pppppbVar35) {\n    return;\n  }" (if "if") (parenthesized_expression "((byte ****)local_2c == *pppppbVar35)" (( "(") (binary_expression "(byte ****)local_2c == *pppppbVar35" (cast_expression "(byte ****)local_2c" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "local_2c")) (== "==") (pointer_expression "*pppppbVar35" (* "*") (identifier "pppppbVar35"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar40 = share_xchannel_failure;" (assignment_expression "pcVar40 = share_xchannel_failure" (identifier "pcVar40") (= "=") (identifier "share_xchannel_failure")) (; ";")) (expression_statement "puVar37 = PTR___stack_chk_fail_000b0c70;" (assignment_expression "puVar37 = PTR___stack_chk_fail_000b0c70" (identifier "puVar37") (= "=") (identifier "PTR___stack_chk_fail_000b0c70")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000b0c70)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b0c70)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b0c70)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000b0c70" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000b0c70" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000b0c70"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_78 = puVar37 + 0x40180;" (assignment_expression "puStack_78 = puVar37 + 0x40180" (identifier "puStack_78") (= "=") (binary_expression "puVar37 + 0x40180" (identifier "puVar37") (+ "+") (number_literal "0x40180"))) (; ";")) (expression_statement "uStack_70 = *(undefined4 *)(iVar22 + 4);" (assignment_expression "uStack_70 = *(undefined4 *)(iVar22 + 4)" (identifier "uStack_70") (= "=") (pointer_expression "*(undefined4 *)(iVar22 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 4)" (( "(") (binary_expression "iVar22 + 4" (identifier "iVar22") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pbVar25 = &DAT_00000061;" (assignment_expression "pbVar25 = &DAT_00000061" (identifier "pbVar25") (= "=") (pointer_expression "&DAT_00000061" (& "&") (identifier "DAT_00000061"))) (; ";")) (expression_statement "pbVar31 = (byte *)&uStack_70;" (assignment_expression "pbVar31 = (byte *)&uStack_70" (identifier "pbVar31") (= "=") (cast_expression "(byte *)&uStack_70" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&uStack_70" (& "&") (identifier "uStack_70")))) (; ";")) (expression_statement "pppppbVar32 = *(byte ******)(puVar37 + 0x38ccc);" (assignment_expression "pppppbVar32 = *(byte ******)(puVar37 + 0x38ccc)" (identifier "pppppbVar32") (= "=") (pointer_expression "*(byte ******)(puVar37 + 0x38ccc)" (* "*") (cast_expression "(byte ******)(puVar37 + 0x38ccc)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(puVar37 + 0x38ccc)" (( "(") (binary_expression "puVar37 + 0x38ccc" (identifier "puVar37") (+ "+") (number_literal "0x38ccc")) () ")"))))) (; ";")) (expression_statement "iStack_7c = *(int *)(puVar37 + 0x38200) + -0x4248;" (assignment_expression "iStack_7c = *(int *)(puVar37 + 0x38200) + -0x4248" (identifier "iStack_7c") (= "=") (binary_expression "*(int *)(puVar37 + 0x38200) + -0x4248" (pointer_expression "*(int *)(puVar37 + 0x38200)" (* "*") (cast_expression "(int *)(puVar37 + 0x38200)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar37 + 0x38200)" (( "(") (binary_expression "puVar37 + 0x38200" (identifier "puVar37") (+ "+") (number_literal "0x38200")) () ")")))) (+ "+") (number_literal "-0x4248"))) (; ";")) (expression_statement "pppbStack_6c = (byte ***)*pppppbVar32;" (assignment_expression "pppbStack_6c = (byte ***)*pppppbVar32" (identifier "pppbStack_6c") (= "=") (cast_expression "(byte ***)*pppppbVar32" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (pointer_expression "*pppppbVar32" (* "*") (identifier "pppppbVar32")))) (; ";")) (expression_statement "uStack_80 = 4;" (assignment_expression "uStack_80 = 4" (identifier "uStack_80") (= "=") (number_literal "4")) (; ";")) (expression_statement "puStack_68 = puVar29;" (assignment_expression "puStack_68 = puVar29" (identifier "puStack_68") (= "=") (identifier "puVar29")) (; ";")) (expression_statement "puStack_64 = unaff_s1;" (assignment_expression "puStack_64 = unaff_s1" (identifier "puStack_64") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "puStack_60 = unaff_s2;" (assignment_expression "puStack_60 = unaff_s2" (identifier "puStack_60") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "pcStack_5c = pcVar40;" (assignment_expression "pcStack_5c = pcVar40" (identifier "pcStack_5c") (= "=") (identifier "pcVar40")) (; ";")) (expression_statement "(**(code **)(puVar37 + 0x389b8))\n            (*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4));" (call_expression "(**(code **)(puVar37 + 0x389b8))\n            (*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4))" (parenthesized_expression "(**(code **)(puVar37 + 0x389b8))" (( "(") (pointer_expression "**(code **)(puVar37 + 0x389b8)" (* "*") (pointer_expression "*(code **)(puVar37 + 0x389b8)" (* "*") (cast_expression "(code **)(puVar37 + 0x389b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar37 + 0x389b8)" (( "(") (binary_expression "puVar37 + 0x389b8" (identifier "puVar37") (+ "+") (number_literal "0x389b8")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4))" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar27 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar27 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar27 + 0xc)" (* "*") (cast_expression "(int *)(iVar27 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar27 + 0xc)" (( "(") (binary_expression "iVar27 + 0xc" (identifier "iVar27") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar27 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar27 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar27 + 4)" (( "(") (binary_expression "iVar27 + 4" (identifier "iVar27") (+ "+") (number_literal "4")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar22 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar22 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar22 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar22 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 8)" (( "(") (binary_expression "iVar22 + 8" (identifier "iVar22") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar18 = iVar27;" (assignment_expression "iVar18 = iVar27" (identifier "iVar18") (= "=") (identifier "iVar27")) (; ";")) (expression_statement "share_dead_xchannel_respond(iVar27,iVar22);" (call_expression "share_dead_xchannel_respond(iVar27,iVar22)" (identifier "share_dead_xchannel_respond") (argument_list "(iVar27,iVar22)" (( "(") (identifier "iVar27") (, ",") (identifier "iVar22") () ")"))) (; ";")) (if_statement "if ((byte ****)pppbStack_6c == *pppppbVar32) {\n    return;\n  }" (if "if") (parenthesized_expression "((byte ****)pppbStack_6c == *pppppbVar32)" (( "(") (binary_expression "(byte ****)pppbStack_6c == *pppppbVar32" (cast_expression "(byte ****)pppbStack_6c" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "pppbStack_6c")) (== "==") (pointer_expression "*pppppbVar32" (* "*") (identifier "pppppbVar32"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar40 = *(code **)(puStack_78 + -0x74e0);" (assignment_expression "pcVar40 = *(code **)(puStack_78 + -0x74e0)" (identifier "pcVar40") (= "=") (pointer_expression "*(code **)(puStack_78 + -0x74e0)" (* "*") (cast_expression "(code **)(puStack_78 + -0x74e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_78 + -0x74e0)" (( "(") (binary_expression "puStack_78 + -0x74e0" (identifier "puStack_78") (+ "+") (number_literal "-0x74e0")) () ")"))))) (; ";")) (expression_statement "uVar41 = 0x7808c;" (assignment_expression "uVar41 = 0x7808c" (identifier "uVar41") (= "=") (number_literal "0x7808c")) (; ";")) (expression_statement "(*pcVar40)();" (call_expression "(*pcVar40)()" (parenthesized_expression "(*pcVar40)" (( "(") (pointer_expression "*pcVar40" (* "*") (identifier "pcVar40")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar11 = *(int *)(iVar18 + 0x10);" (assignment_expression "iVar11 = *(int *)(iVar18 + 0x10)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar18 + 0x10)" (* "*") (cast_expression "(int *)(iVar18 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x10)" (( "(") (binary_expression "iVar18 + 0x10" (identifier "iVar18") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "piVar39 = *(int **)(pcVar40 + 0x38c10);" (assignment_expression "piVar39 = *(int **)(pcVar40 + 0x38c10)" (identifier "piVar39") (= "=") (pointer_expression "*(int **)(pcVar40 + 0x38c10)" (* "*") (cast_expression "(int **)(pcVar40 + 0x38c10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38c10)" (( "(") (binary_expression "pcVar40 + 0x38c10" (identifier "pcVar40") (+ "+") (number_literal "0x38c10")) () ")"))))) (; ";")) (expression_statement "puStack_a0 = (undefined *)pppppbVar35;" (assignment_expression "puStack_a0 = (undefined *)pppppbVar35" (identifier "puStack_a0") (= "=") (cast_expression "(undefined *)pppppbVar35" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppbVar35"))) (; ";")) (expression_statement "iStack_bc = *piVar39;" (assignment_expression "iStack_bc = *piVar39" (identifier "iStack_bc") (= "=") (pointer_expression "*piVar39" (* "*") (identifier "piVar39"))) (; ";")) (expression_statement "pbVar34 = pbVar31;" (assignment_expression "pbVar34 = pbVar31" (identifier "pbVar34") (= "=") (identifier "pbVar31")) (; ";")) (expression_statement "iStack_b8 = iVar22;" (assignment_expression "iStack_b8 = iVar22" (identifier "iStack_b8") (= "=") (identifier "iVar22")) (; ";")) (expression_statement "iStack_b4 = iVar27;" (assignment_expression "iStack_b4 = iVar27" (identifier "iStack_b4") (= "=") (identifier "iVar27")) (; ";")) (expression_statement "ppppbStack_b0 = (byte ****)pppppbVar32;" (assignment_expression "ppppbStack_b0 = (byte ****)pppppbVar32" (identifier "ppppbStack_b0") (= "=") (cast_expression "(byte ****)pppppbVar32" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "pppppbVar32"))) (; ";")) (expression_statement "puStack_ac = unaff_s3;" (assignment_expression "puStack_ac = unaff_s3" (identifier "puStack_ac") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "pbStack_a8 = unaff_s4;" (assignment_expression "pbStack_a8 = unaff_s4" (identifier "pbStack_a8") (= "=") (identifier "unaff_s4")) (; ";")) (expression_statement "pbStack_a4 = param_1;" (assignment_expression "pbStack_a4 = param_1" (identifier "pbStack_a4") (= "=") (identifier "param_1")) (; ";")) (expression_statement "iStack_9c = param_4;" (assignment_expression "iStack_9c = param_4" (identifier "iStack_9c") (= "=") (identifier "param_4")) (; ";")) (expression_statement "iStack_98 = param_2;" (assignment_expression "iStack_98 = param_2" (identifier "iStack_98") (= "=") (identifier "param_2")) (; ";")) (expression_statement "uStack_94 = uVar41;" (assignment_expression "uStack_94 = uVar41" (identifier "uStack_94") (= "=") (identifier "uVar41")) (; ";")) (if_statement "if (iVar11 != 0x709) {\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar11 != 0) goto LAB_00078210;\n    *(undefined4 *)(iVar18 + 0x4030) = 0;\n  }" (if "if") (parenthesized_expression "(iVar11 != 0x709)" (( "(") (binary_expression "iVar11 != 0x709" (identifier "iVar11") (!= "!=") (number_literal "0x709")) () ")")) (compound_statement "{\n    if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }\n    if (iVar11 != 0) goto LAB_00078210;\n    *(undefined4 *)(iVar18 + 0x4030) = 0;\n  }" ({ "{") (if_statement "if (0x709 < iVar11) {\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }" (if "if") (parenthesized_expression "(0x709 < iVar11)" (( "(") (binary_expression "0x709 < iVar11" (number_literal "0x709") (< "<") (identifier "iVar11")) () ")")) (compound_statement "{\n      if (iVar11 == 0x72e) goto LAB_000784dc;\n      if (iVar11 != 0x73b) goto LAB_00078210;\n      goto LAB_00078104;\n    }" ({ "{") (if_statement "if (iVar11 == 0x72e) goto LAB_000784dc;" (if "if") (parenthesized_expression "(iVar11 == 0x72e)" (( "(") (binary_expression "iVar11 == 0x72e" (identifier "iVar11") (== "==") (number_literal "0x72e")) () ")")) (goto_statement "goto LAB_000784dc;" (goto "goto") (statement_identifier "LAB_000784dc") (; ";"))) (if_statement "if (iVar11 != 0x73b) goto LAB_00078210;" (if "if") (parenthesized_expression "(iVar11 != 0x73b)" (( "(") (binary_expression "iVar11 != 0x73b" (identifier "iVar11") (!= "!=") (number_literal "0x73b")) () ")")) (goto_statement "goto LAB_00078210;" (goto "goto") (statement_identifier "LAB_00078210") (; ";"))) (goto_statement "goto LAB_00078104;" (goto "goto") (statement_identifier "LAB_00078104") (; ";")) (} "}"))) (if_statement "if (iVar11 != 0) goto LAB_00078210;" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00078210;" (goto "goto") (statement_identifier "LAB_00078210") (; ";"))) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (pbVar31 == (byte *)0x0) {\nLAB_000781c4:\n    *(undefined4 *)(iVar18 + 0x10) = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(pbVar31 == (byte *)0x0)" (( "(") (binary_expression "pbVar31 == (byte *)0x0" (identifier "pbVar31") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000781c4:\n    *(undefined4 *)(iVar18 + 0x10) = 0x709;\nLAB_00078214:\n    do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );\n  }" ({ "{") (labeled_statement "LAB_000781c4:\n    *(undefined4 *)(iVar18 + 0x10) = 0x709;" (statement_identifier "LAB_000781c4") (: ":") (expression_statement "*(undefined4 *)(iVar18 + 0x10) = 0x709;" (assignment_expression "*(undefined4 *)(iVar18 + 0x10) = 0x709" (pointer_expression "*(undefined4 *)(iVar18 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x10)" (( "(") (binary_expression "iVar18 + 0x10" (identifier "iVar18") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0x709")) (; ";"))) (labeled_statement "LAB_00078214:\n    do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );" (statement_identifier "LAB_00078214") (: ":") (do_statement "do {\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    } while( true );" (do "do") (compound_statement "{\n      if (iStack_bc == *piVar39) {\n        return;\n      }\n      (**(code **)(pcVar40 + 0x38be4))();\n      pbVar25 = param_1;\nLAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;\n      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n      *(undefined4 *)(iVar18 + 0x4030) = 0;\nLAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;\n      param_1 = pbVar25;\n      do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);\n      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);\n      *(int *)(iVar18 + 0x1c) = iVar27;\n      if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);\nLAB_000781e4:\n      FUN_00077910(iVar18,uVar41);\n      (**(code **)(pcVar40 + 0x38124))(uVar41);\n      param_1 = pbVar25;\nLAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;\n    }" ({ "{") (if_statement "if (iStack_bc == *piVar39) {\n        return;\n      }" (if "if") (parenthesized_expression "(iStack_bc == *piVar39)" (( "(") (binary_expression "iStack_bc == *piVar39" (identifier "iStack_bc") (== "==") (pointer_expression "*piVar39" (* "*") (identifier "piVar39"))) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar40 + 0x38be4))();" (call_expression "(**(code **)(pcVar40 + 0x38be4))()" (parenthesized_expression "(**(code **)(pcVar40 + 0x38be4))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38be4)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38be4)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38be4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38be4)" (( "(") (binary_expression "pcVar40 + 0x38be4" (identifier "pcVar40") (+ "+") (number_literal "0x38be4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pbVar25 = param_1;" (assignment_expression "pbVar25 = param_1" (identifier "pbVar25") (= "=") (identifier "param_1")) (; ";")) (labeled_statement "LAB_00078f28:\n      pppbStack_c0 = *ppppbStack_108;" (statement_identifier "LAB_00078f28") (: ":") (expression_statement "pppbStack_c0 = *ppppbStack_108;" (assignment_expression "pppbStack_c0 = *ppppbStack_108" (identifier "pppbStack_c0") (= "=") (pointer_expression "*ppppbStack_108" (* "*") (identifier "ppppbStack_108"))) (; ";"))) (expression_statement "FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);" (call_expression "FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc)" (identifier "FUN_000768e4") (argument_list "(iVar18 + 8,100,&pppbStack_c0,4,0,0xc)" (( "(") (binary_expression "iVar18 + 8" (identifier "iVar18") (+ "+") (number_literal "8")) (, ",") (number_literal "100") (, ",") (pointer_expression "&pppbStack_c0" (& "&") (identifier "pppbStack_c0")) (, ",") (number_literal "4") (, ",") (number_literal "0") (, ",") (number_literal "0xc") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar40 + 0x38124))(pppppbVar35);" (call_expression "(**(code **)(pcVar40 + 0x38124))(pppppbVar35)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38124)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) () ")")) (argument_list "(pppppbVar35)" (( "(") (identifier "pppppbVar35") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000784dc:\n      pbVar31 = pbVar25 + (int)pbVar34;" (statement_identifier "LAB_000784dc") (: ":") (expression_statement "pbVar31 = pbVar25 + (int)pbVar34;" (assignment_expression "pbVar31 = pbVar25 + (int)pbVar34" (identifier "pbVar31") (= "=") (binary_expression "pbVar25 + (int)pbVar34" (identifier "pbVar25") (+ "+") (cast_expression "(int)pbVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar34")))) (; ";"))) (expression_statement "param_1 = pbVar25;" (assignment_expression "param_1 = pbVar25" (identifier "param_1") (= "=") (identifier "pbVar25")) (; ";")) (do_statement "do {\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      } while (iVar22 < 4);" (do "do") (compound_statement "{\n        pbVar34 = pbVar31 + (-1 - (int)param_1);\n        if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }\n        iVar27 = *(int *)(iVar18 + 0x4030);\n        pbVar25 = param_1 + 1;\n        iVar22 = iVar27 + 1;\n        bVar21 = *param_1;\n        in_t3 = (uint)bVar21;\n        *(int *)(iVar18 + 0x4030) = iVar22;\n        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n        param_1 = pbVar25;\n      }" ({ "{") (expression_statement "pbVar34 = pbVar31 + (-1 - (int)param_1);" (assignment_expression "pbVar34 = pbVar31 + (-1 - (int)param_1)" (identifier "pbVar34") (= "=") (binary_expression "pbVar31 + (-1 - (int)param_1)" (identifier "pbVar31") (+ "+") (parenthesized_expression "(-1 - (int)param_1)" (( "(") (binary_expression "-1 - (int)param_1" (number_literal "-1") (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) () ")")))) (; ";")) (if_statement "if (param_1 == pbVar31) {\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }" (if "if") (parenthesized_expression "(param_1 == pbVar31)" (( "(") (binary_expression "param_1 == pbVar31" (identifier "param_1") (== "==") (identifier "pbVar31")) () ")")) (compound_statement "{\n          *(undefined4 *)(iVar18 + 0x10) = 0x72e;\n          goto LAB_00078214;\n        }" ({ "{") (expression_statement "*(undefined4 *)(iVar18 + 0x10) = 0x72e;" (assignment_expression "*(undefined4 *)(iVar18 + 0x10) = 0x72e" (pointer_expression "*(undefined4 *)(iVar18 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x10)" (( "(") (binary_expression "iVar18 + 0x10" (identifier "iVar18") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0x72e")) (; ";")) (goto_statement "goto LAB_00078214;" (goto "goto") (statement_identifier "LAB_00078214") (; ";")) (} "}"))) (expression_statement "iVar27 = *(int *)(iVar18 + 0x4030);" (assignment_expression "iVar27 = *(int *)(iVar18 + 0x4030)" (identifier "iVar27") (= "=") (pointer_expression "*(int *)(iVar18 + 0x4030)" (* "*") (cast_expression "(int *)(iVar18 + 0x4030)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")"))))) (; ";")) (expression_statement "pbVar25 = param_1 + 1;" (assignment_expression "pbVar25 = param_1 + 1" (identifier "pbVar25") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar22 = iVar27 + 1;" (assignment_expression "iVar22 = iVar27 + 1" (identifier "iVar22") (= "=") (binary_expression "iVar27 + 1" (identifier "iVar27") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar21 = *param_1;" (assignment_expression "bVar21 = *param_1" (identifier "bVar21") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "in_t3 = (uint)bVar21;" (assignment_expression "in_t3 = (uint)bVar21" (identifier "in_t3") (= "=") (cast_expression "(uint)bVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar21"))) (; ";")) (expression_statement "*(int *)(iVar18 + 0x4030) = iVar22;" (assignment_expression "*(int *)(iVar18 + 0x4030) = iVar22" (pointer_expression "*(int *)(iVar18 + 0x4030)" (* "*") (cast_expression "(int *)(iVar18 + 0x4030)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (identifier "iVar22")) (; ";")) (expression_statement "*(byte *)(iVar18 + iVar27 + 0x20) = bVar21;" (assignment_expression "*(byte *)(iVar18 + iVar27 + 0x20) = bVar21" (pointer_expression "*(byte *)(iVar18 + iVar27 + 0x20)" (* "*") (cast_expression "(byte *)(iVar18 + iVar27 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + iVar27 + 0x20)" (( "(") (binary_expression "iVar18 + iVar27 + 0x20" (binary_expression "iVar18 + iVar27" (identifier "iVar18") (+ "+") (identifier "iVar27")) (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "param_1 = pbVar25;" (assignment_expression "param_1 = pbVar25" (identifier "param_1") (= "=") (identifier "pbVar25")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar22 < 4)" (( "(") (binary_expression "iVar22 < 4" (identifier "iVar22") (< "<") (number_literal "4")) () ")")) (; ";")) (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4)" (identifier "iVar27") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38248))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38248)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38248)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38248)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38248)" (( "(") (binary_expression "pcVar40 + 0x38248" (identifier "pcVar40") (+ "+") (number_literal "0x38248")) () ")"))))) () ")")) (argument_list "(*(int *)(iVar18 + 0x20) + 4)" (( "(") (binary_expression "*(int *)(iVar18 + 0x20) + 4" (pointer_expression "*(int *)(iVar18 + 0x20)" (* "*") (cast_expression "(int *)(iVar18 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x20)" (( "(") (binary_expression "iVar18 + 0x20" (identifier "iVar18") (+ "+") (number_literal "0x20")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "*(int *)(iVar18 + 0x1c) = iVar27;" (assignment_expression "*(int *)(iVar18 + 0x1c) = iVar27" (pointer_expression "*(int *)(iVar18 + 0x1c)" (* "*") (cast_expression "(int *)(iVar18 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x1c)" (( "(") (binary_expression "iVar18 + 0x1c" (identifier "iVar18") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "iVar27")) (; ";")) (if_statement "if (iVar27 - 5U < 0x400c) {\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }" (if "if") (parenthesized_expression "(iVar27 - 5U < 0x400c)" (( "(") (binary_expression "iVar27 - 5U < 0x400c" (binary_expression "iVar27 - 5U" (identifier "iVar27") (- "-") (number_literal "5U")) (< "<") (number_literal "0x400c")) () ")")) (compound_statement "{\n        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);\n        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }\n        bVar21 = *(byte *)(iVar18 + 0x24);\n        iVar27 = iVar18 + 0x25;\n        pbVar31 = (byte *)((int)pppppbVar35 + -5);\n        if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\n        iVar22 = *(int *)(pcVar40 + 0x38144);\n        if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }\nLAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);\nLAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }\n        FUN_00077910(iVar18,iVar27);\n        (**(code **)(pcVar40 + 0x38124))(iVar27);\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }" ({ "{") (expression_statement "pppppbVar35 = *(byte ******)(iVar18 + 0x4030);" (assignment_expression "pppppbVar35 = *(byte ******)(iVar18 + 0x4030)" (identifier "pppppbVar35") (= "=") (pointer_expression "*(byte ******)(iVar18 + 0x4030)" (* "*") (cast_expression "(byte ******)(iVar18 + 0x4030)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")"))))) (; ";")) (while_statement "while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }" (while "while") (parenthesized_expression "(param_1 = pbVar25, (int)pppppbVar35 < iVar27)" (( "(") (comma_expression "param_1 = pbVar25, (int)pppppbVar35 < iVar27" (assignment_expression "param_1 = pbVar25" (identifier "param_1") (= "=") (identifier "pbVar25")) (, ",") (binary_expression "(int)pppppbVar35 < iVar27" (cast_expression "(int)pppppbVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar35")) (< "<") (identifier "iVar27"))) () ")")) (compound_statement "{\nLAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }\n          iVar27 = *(int *)(iVar18 + 0x4030);\n          pbVar34 = pbVar34 + -1;\n          bVar21 = *pbVar25;\n          pbVar25 = pbVar25 + 1;\n          pppppbVar35 = (byte *****)(iVar27 + 1);\n          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;\n          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;\n          iVar27 = *(int *)(iVar18 + 0x1c);\n        }" ({ "{") (labeled_statement "LAB_00078104:\n          if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }" (statement_identifier "LAB_00078104") (: ":") (if_statement "if (pbVar34 == (byte *)0x0) {\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }" (if "if") (parenthesized_expression "(pbVar34 == (byte *)0x0)" (( "(") (binary_expression "pbVar34 == (byte *)0x0" (identifier "pbVar34") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            *(undefined4 *)(iVar18 + 0x10) = 0x73b;\n            pbVar34 = (byte *)0x0;\n            goto LAB_00078214;\n          }" ({ "{") (expression_statement "*(undefined4 *)(iVar18 + 0x10) = 0x73b;" (assignment_expression "*(undefined4 *)(iVar18 + 0x10) = 0x73b" (pointer_expression "*(undefined4 *)(iVar18 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x10)" (( "(") (binary_expression "iVar18 + 0x10" (identifier "iVar18") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0x73b")) (; ";")) (expression_statement "pbVar34 = (byte *)0x0;" (assignment_expression "pbVar34 = (byte *)0x0" (identifier "pbVar34") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_00078214;" (goto "goto") (statement_identifier "LAB_00078214") (; ";")) (} "}")))) (expression_statement "iVar27 = *(int *)(iVar18 + 0x4030);" (assignment_expression "iVar27 = *(int *)(iVar18 + 0x4030)" (identifier "iVar27") (= "=") (pointer_expression "*(int *)(iVar18 + 0x4030)" (* "*") (cast_expression "(int *)(iVar18 + 0x4030)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")"))))) (; ";")) (expression_statement "pbVar34 = pbVar34 + -1;" (assignment_expression "pbVar34 = pbVar34 + -1" (identifier "pbVar34") (= "=") (binary_expression "pbVar34 + -1" (identifier "pbVar34") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar21 = *pbVar25;" (assignment_expression "bVar21 = *pbVar25" (identifier "bVar21") (= "=") (pointer_expression "*pbVar25" (* "*") (identifier "pbVar25"))) (; ";")) (expression_statement "pbVar25 = pbVar25 + 1;" (assignment_expression "pbVar25 = pbVar25 + 1" (identifier "pbVar25") (= "=") (binary_expression "pbVar25 + 1" (identifier "pbVar25") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pppppbVar35 = (byte *****)(iVar27 + 1);" (assignment_expression "pppppbVar35 = (byte *****)(iVar27 + 1)" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)(iVar27 + 1)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(iVar27 + 1)" (( "(") (binary_expression "iVar27 + 1" (identifier "iVar27") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*(byte ******)(iVar18 + 0x4030) = pppppbVar35;" (assignment_expression "*(byte ******)(iVar18 + 0x4030) = pppppbVar35" (pointer_expression "*(byte ******)(iVar18 + 0x4030)" (* "*") (cast_expression "(byte ******)(iVar18 + 0x4030)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (identifier "pppppbVar35")) (; ";")) (expression_statement "*(byte *)(iVar18 + iVar27 + 0x20) = bVar21;" (assignment_expression "*(byte *)(iVar18 + iVar27 + 0x20) = bVar21" (pointer_expression "*(byte *)(iVar18 + iVar27 + 0x20)" (* "*") (cast_expression "(byte *)(iVar18 + iVar27 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + iVar27 + 0x20)" (( "(") (binary_expression "iVar18 + iVar27 + 0x20" (binary_expression "iVar18 + iVar27" (identifier "iVar18") (+ "+") (identifier "iVar27")) (+ "+") (number_literal "0x20")) () ")")))) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "iVar27 = *(int *)(iVar18 + 0x1c);" (assignment_expression "iVar27 = *(int *)(iVar18 + 0x1c)" (identifier "iVar27") (= "=") (pointer_expression "*(int *)(iVar18 + 0x1c)" (* "*") (cast_expression "(int *)(iVar18 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x1c)" (( "(") (binary_expression "iVar18 + 0x1c" (identifier "iVar18") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (} "}"))) (expression_statement "bVar21 = *(byte *)(iVar18 + 0x24);" (assignment_expression "bVar21 = *(byte *)(iVar18 + 0x24)" (identifier "bVar21") (= "=") (pointer_expression "*(byte *)(iVar18 + 0x24)" (* "*") (cast_expression "(byte *)(iVar18 + 0x24)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x24)" (( "(") (binary_expression "iVar18 + 0x24" (identifier "iVar18") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "iVar27 = iVar18 + 0x25;" (assignment_expression "iVar27 = iVar18 + 0x25" (identifier "iVar27") (= "=") (binary_expression "iVar18 + 0x25" (identifier "iVar18") (+ "+") (number_literal "0x25"))) (; ";")) (expression_statement "pbVar31 = (byte *)((int)pppppbVar35 + -5);" (assignment_expression "pbVar31 = (byte *)((int)pppppbVar35 + -5)" (identifier "pbVar31") (= "=") (cast_expression "(byte *)((int)pppppbVar35 + -5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar35 + -5)" (( "(") (binary_expression "(int)pppppbVar35 + -5" (cast_expression "(int)pppppbVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar35")) (+ "+") (number_literal "-5")) () ")")))) (; ";")) (if_statement "if (bVar21 != 0x5a) {\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }" (if "if") (parenthesized_expression "(bVar21 != 0x5a)" (( "(") (binary_expression "bVar21 != 0x5a" (identifier "bVar21") (!= "!=") (number_literal "0x5a")) () ")")) (compound_statement "{\n          if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }\nLAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }" ({ "{") (if_statement "if (bVar21 < 0x5b) {\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }\n          else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }" (if "if") (parenthesized_expression "(bVar21 < 0x5b)" (( "(") (binary_expression "bVar21 < 0x5b" (identifier "bVar21") (< "<") (number_literal "0x5b")) () ")")) (compound_statement "{\n            if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\nLAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }\nLAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);\n            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }\n          }" ({ "{") (if_statement "if (bVar21 != 2) {\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }" (if "if") (parenthesized_expression "(bVar21 != 2)" (( "(") (binary_expression "bVar21 != 2" (identifier "bVar21") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n              if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }\n              if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }\n              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));\n              *(undefined4 *)(iVar18 + 8) = 0;\n              FUN_00077400(iVar18);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }" ({ "{") (if_statement "if (2 < bVar21) {\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }" (if "if") (parenthesized_expression "(2 < bVar21)" (( "(") (binary_expression "2 < bVar21" (number_literal "2") (< "<") (identifier "bVar21")) () ")")) (compound_statement "{\n                if (bVar21 == 4) goto LAB_00078844;\n                if (bVar21 != 0x50) goto LAB_0007878c;\n                iVar22 = *(int *)(pcVar40 + 0x38144);\n                pppppbVar33 = pppppbVar32;\n                if ((int)pbVar31 < 4) goto LAB_0007882c;\n                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);\n                ppppbVar12 = ppppbStack_e8;\n                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);\n                if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                pppppbVar32 = (byte *****)ppppbStack_e8;\n                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;\n                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                ppppbStack_108 = (byte ****)(uint)*pbVar16;\n                if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }\nLAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);\n                pppppbVar32 = pppppbVar33;\n                goto LAB_000787a4;\n              }" ({ "{") (if_statement "if (bVar21 == 4) goto LAB_00078844;" (if "if") (parenthesized_expression "(bVar21 == 4)" (( "(") (binary_expression "bVar21 == 4" (identifier "bVar21") (== "==") (number_literal "4")) () ")")) (goto_statement "goto LAB_00078844;" (goto "goto") (statement_identifier "LAB_00078844") (; ";"))) (if_statement "if (bVar21 != 0x50) goto LAB_0007878c;" (if "if") (parenthesized_expression "(bVar21 != 0x50)" (( "(") (binary_expression "bVar21 != 0x50" (identifier "bVar21") (!= "!=") (number_literal "0x50")) () ")")) (goto_statement "goto LAB_0007878c;" (goto "goto") (statement_identifier "LAB_0007878c") (; ";"))) (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")"))))) (; ";")) (expression_statement "pppppbVar33 = pppppbVar32;" (assignment_expression "pppppbVar33 = pppppbVar32" (identifier "pppppbVar33") (= "=") (identifier "pppppbVar32")) (; ";")) (if_statement "if ((int)pbVar31 < 4) goto LAB_0007882c;" (if "if") (parenthesized_expression "((int)pbVar31 < 4)" (( "(") (binary_expression "(int)pbVar31 < 4" (cast_expression "(int)pbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar31")) (< "<") (number_literal "4")) () ")")) (goto_statement "goto LAB_0007882c;" (goto "goto") (statement_identifier "LAB_0007882c") (; ";"))) (expression_statement "pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);" (assignment_expression "pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0)" (identifier "pppppbVar33") (= "=") (cast_expression "(byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(*(int *)(pcVar40 + 0x3885c) + 0x6af0)" (( "(") (binary_expression "*(int *)(pcVar40 + 0x3885c) + 0x6af0" (pointer_expression "*(int *)(pcVar40 + 0x3885c)" (* "*") (cast_expression "(int *)(pcVar40 + 0x3885c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x3885c)" (( "(") (binary_expression "pcVar40 + 0x3885c" (identifier "pcVar40") (+ "+") (number_literal "0x3885c")) () ")")))) (+ "+") (number_literal "0x6af0")) () ")")))) (; ";")) (expression_statement "iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);" (assignment_expression "iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0)" (identifier "iVar22") (= "=") (call_expression "FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0)" (identifier "FUN_00076af0") (argument_list "(iVar27,pbVar31,&ppppbStack_e8,0)" (( "(") (identifier "iVar27") (, ",") (identifier "pbVar31") (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "ppppbVar12 = ppppbStack_e8;" (assignment_expression "ppppbVar12 = ppppbStack_e8" (identifier "ppppbVar12") (= "=") (identifier "ppppbStack_e8")) (; ";")) (if_statement "if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))\n                goto LAB_00078828;" (if "if") (parenthesized_expression "((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))" (( "(") (binary_expression "(iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0)" (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((byte *****)ppppbStack_e8 == (byte *****)0x0)" (( "(") (binary_expression "(byte *****)ppppbStack_e8 == (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_e8" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_e8")) (== "==") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (goto_statement "goto LAB_00078828;" (goto "goto") (statement_identifier "LAB_00078828") (; ";"))) (expression_statement "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);" (assignment_expression "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860)" (identifier "iVar22") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38c4c))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38c4c)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38c4c)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38c4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38c4c)" (( "(") (binary_expression "pcVar40 + 0x38c4c" (identifier "pcVar40") (+ "+") (number_literal "0x38c4c")) () ")"))))) () ")")) (argument_list "(ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860)" (( "(") (identifier "ppppbStack_e8") (, ",") (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x4860" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" (* "*") (cast_expression "(int *)(pcVar40 + 0x380fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x380fc)" (( "(") (binary_expression "pcVar40 + 0x380fc" (identifier "pcVar40") (+ "+") (number_literal "0x380fc")) () ")")))) (+ "+") (number_literal "0x4860")) () ")")))) (; ";")) (if_statement "if (iVar22 != 0) {\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }" (if "if") (parenthesized_expression "(iVar22 != 0)" (( "(") (binary_expression "iVar22 != 0" (identifier "iVar22") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  pppppbVar32 = pppppbVar33;\n                  if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }\nLAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  goto LAB_0007882c;\n                }" ({ "{") (expression_statement "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);" (assignment_expression "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc)" (identifier "iVar22") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38c4c))\n                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38c4c))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38c4c)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38c4c)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38c4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38c4c)" (( "(") (binary_expression "pcVar40 + 0x38c4c" (identifier "pcVar40") (+ "+") (number_literal "0x38c4c")) () ")"))))) () ")")) (argument_list "(ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc)" (( "(") (identifier "ppppbVar12") (, ",") (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x47cc" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" (* "*") (cast_expression "(int *)(pcVar40 + 0x380fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x380fc)" (( "(") (binary_expression "pcVar40 + 0x380fc" (identifier "pcVar40") (+ "+") (number_literal "0x380fc")) () ")")))) (+ "+") (number_literal "0x47cc")) () ")")))) (; ";")) (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38124);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38124)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) (; ";")) (expression_statement "pppppbVar32 = pppppbVar33;" (assignment_expression "pppppbVar32 = pppppbVar33" (identifier "pppppbVar32") (= "=") (identifier "pppppbVar33")) (; ";")) (if_statement "if (iVar22 == 0) {\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }\n                  else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }" (if "if") (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    (*pcVar38)(ppppbVar12);\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar36 = (byte *****)ppppbStack_e8;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }\n                  }" ({ "{") (expression_statement "(*pcVar38)(ppppbVar12);" (call_expression "(*pcVar38)(ppppbVar12)" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "(ppppbVar12)" (( "(") (identifier "ppppbVar12") () ")"))) (; ";")) (expression_statement "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);" (assignment_expression "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" (identifier "iVar22") (= "=") (call_expression "FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" (identifier "FUN_00076af0") (argument_list "(iVar27,pbVar31,0,&ppppbStack_e8)" (( "(") (identifier "iVar27") (, ",") (identifier "pbVar31") (, ",") (number_literal "0") (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) () ")")))) (; ";")) (expression_statement "pppppbVar36 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar36 = (byte *****)ppppbStack_e8" (identifier "pppppbVar36") (= "=") (cast_expression "(byte *****)ppppbStack_e8" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_e8"))) (; ";")) (if_statement "if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)) {\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }" (if "if") (parenthesized_expression "(((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31))" (( "(") (binary_expression "((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)" (parenthesized_expression "((iVar22 != 0) && (-1 < (int)ppppbStack_e8))" (( "(") (binary_expression "(iVar22 != 0) && (-1 < (int)ppppbStack_e8)" (parenthesized_expression "(iVar22 != 0)" (( "(") (binary_expression "iVar22 != 0" (identifier "iVar22") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(-1 < (int)ppppbStack_e8)" (( "(") (binary_expression "-1 < (int)ppppbStack_e8" (number_literal "-1") (< "<") (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31)" (( "(") (comma_expression "pbVar28 = (byte *)((int)ppppbStack_e8 + 1),\n                       (int)ppppbStack_e8 < (int)pbVar31" (assignment_expression "pbVar28 = (byte *)((int)ppppbStack_e8 + 1)" (identifier "pbVar28") (= "=") (cast_expression "(byte *)((int)ppppbStack_e8 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppbStack_e8 + 1)" (( "(") (binary_expression "(int)ppppbStack_e8 + 1" (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8")) (+ "+") (number_literal "1")) () ")")))) (, ",") (binary_expression "(int)ppppbStack_e8 < (int)pbVar31" (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8")) (< "<") (cast_expression "(int)pbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar31")))) () ")"))) () ")")) (compound_statement "{\n                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);\n                      iVar11 = (int)pbVar31 - (int)pbVar28;\n                      bVar21 = *(byte *)ppppbStack_108;\n                      if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }\n                      goto LAB_0007882c;\n                    }" ({ "{") (expression_statement "ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);" (assignment_expression "ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27)" (identifier "ppppbStack_108") (= "=") (cast_expression "(byte ****)((int)ppppbStack_e8 + iVar27)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)ppppbStack_e8 + iVar27)" (( "(") (binary_expression "(int)ppppbStack_e8 + iVar27" (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8")) (+ "+") (identifier "iVar27")) () ")")))) (; ";")) (expression_statement "iVar11 = (int)pbVar31 - (int)pbVar28;" (assignment_expression "iVar11 = (int)pbVar31 - (int)pbVar28" (identifier "iVar11") (= "=") (binary_expression "(int)pbVar31 - (int)pbVar28" (cast_expression "(int)pbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar31")) (- "-") (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")))) (; ";")) (expression_statement "bVar21 = *(byte *)ppppbStack_108;" (assignment_expression "bVar21 = *(byte *)ppppbStack_108" (identifier "bVar21") (= "=") (pointer_expression "*(byte *)ppppbStack_108" (* "*") (cast_expression "(byte *)ppppbStack_108" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppbStack_108")))) (; ";")) (if_statement "if ((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }\n                      else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }" (if "if") (parenthesized_expression "((iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0))" (( "(") (binary_expression "(iVar11 < 4) ||\n                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)" (parenthesized_expression "(iVar11 < 4)" (( "(") (binary_expression "iVar11 < 4" (identifier "iVar11") (< "<") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0)" (( "(") (comma_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),\n                         iVar22 == 0" (assignment_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" (identifier "iVar22") (= "=") (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" (identifier "FUN_00076af0") (argument_list "(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" (( "(") (binary_expression "pbVar28 + iVar27" (identifier "pbVar28") (+ "+") (identifier "iVar27")) (, ",") (identifier "iVar11") (, ",") (number_literal "0") (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) () ")")))) (, ",") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }\n                      }" ({ "{") (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")"))))) (; ";")) (if_statement "if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }" (if "if") (parenthesized_expression "((int)pppppbVar36 < (int)(pppppbVar35 + -2))" (( "(") (binary_expression "(int)pppppbVar36 < (int)(pppppbVar35 + -2)" (cast_expression "(int)pppppbVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar36")) (< "<") (cast_expression "(int)(pppppbVar35 + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pppppbVar35 + -2)" (( "(") (binary_expression "pppppbVar35 + -2" (identifier "pppppbVar35") (+ "+") (number_literal "-2")) () ")")))) () ")")) (compound_statement "{\n                          if (iVar11 >= 4) goto LAB_000783d4;\nLAB_0007901c:\n                          uVar41 = 0x5a7;\n                          goto LAB_00079020;\n                        }" ({ "{") (if_statement "if (iVar11 >= 4) goto LAB_000783d4;" (if "if") (parenthesized_expression "(iVar11 >= 4)" (( "(") (binary_expression "iVar11 >= 4" (identifier "iVar11") (>= ">=") (number_literal "4")) () ")")) (goto_statement "goto LAB_000783d4;" (goto "goto") (statement_identifier "LAB_000783d4") (; ";"))) (labeled_statement "LAB_0007901c:\n                          uVar41 = 0x5a7;" (statement_identifier "LAB_0007901c") (: ":") (expression_statement "uVar41 = 0x5a7;" (assignment_expression "uVar41 = 0x5a7" (identifier "uVar41") (= "=") (number_literal "0x5a7")) (; ";"))) (goto_statement "goto LAB_00079020;" (goto "goto") (statement_identifier "LAB_00079020") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }" (else "else") (compound_statement "{\n                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                        iVar22 = *(int *)(pcVar40 + 0x38144);\n                        if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }\n                      }" ({ "{") (expression_statement "pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);" (assignment_expression "pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8)" (identifier "pppppbVar36") (= "=") (cast_expression "(byte *****)(pbVar28 + (int)ppppbStack_e8)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(pbVar28 + (int)ppppbStack_e8)" (( "(") (binary_expression "pbVar28 + (int)ppppbStack_e8" (identifier "pbVar28") (+ "+") (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8"))) () ")")))) (; ";")) (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")"))))) (; ";")) (if_statement "if (-1 < (int)pppppbVar36) {\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }" (if "if") (parenthesized_expression "(-1 < (int)pppppbVar36)" (( "(") (binary_expression "-1 < (int)pppppbVar36" (number_literal "-1") (< "<") (cast_expression "(int)pppppbVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar36"))) () ")")) (compound_statement "{\n                          pcVar38 = *(code **)(pcVar40 + 0x38158);\n                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;\nLAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                          pppppbVar32 = (byte *****)ppppbStack_e8;\n                          if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;\n                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);\n                          bVar1 = *pbVar28;\n                          bVar2 = pbVar28[1];\n                          bVar3 = pbVar28[3];\n                          bVar4 = pbVar28[2];\n                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;\n                          ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);\n                          pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);\n                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);\n                          if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }\n                          (*pcVar38)(pppppbVar32);\n                          goto LAB_000784d4;\n                        }" ({ "{") (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38158);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38158)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(pcVar40 + 0x38158)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38158)" (( "(") (binary_expression "pcVar40 + 0x38158" (identifier "pcVar40") (+ "+") (number_literal "0x38158")) () ")"))))) (; ";")) (if_statement "if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;" (if "if") (parenthesized_expression "((int)(pppppbVar35 + -2) <= (int)pppppbVar36)" (( "(") (binary_expression "(int)(pppppbVar35 + -2) <= (int)pppppbVar36" (cast_expression "(int)(pppppbVar35 + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pppppbVar35 + -2)" (( "(") (binary_expression "pppppbVar35 + -2" (identifier "pppppbVar35") (+ "+") (number_literal "-2")) () ")"))) (<= "<=") (cast_expression "(int)pppppbVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar36"))) () ")")) (goto_statement "goto LAB_00078830;" (goto "goto") (statement_identifier "LAB_00078830") (; ";"))) (labeled_statement "LAB_000783d4:\n                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);" (statement_identifier "LAB_000783d4") (: ":") (expression_statement "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);" (assignment_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" (identifier "iVar22") (= "=") (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" (identifier "FUN_00076af0") (argument_list "(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" (( "(") (binary_expression "pbVar28 + iVar27" (identifier "pbVar28") (+ "+") (identifier "iVar27")) (, ",") (identifier "iVar11") (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) (, ",") (number_literal "0") () ")")))) (; ";"))) (expression_statement "pppppbVar32 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar32 = (byte *****)ppppbStack_e8" (identifier "pppppbVar32") (= "=") (cast_expression "(byte *****)ppppbStack_e8" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_e8"))) (; ";")) (if_statement "if ((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;" (if "if") (parenthesized_expression "((iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0))" (( "(") (binary_expression "(iVar22 == 0) ||\n                             (pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)" (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0)" (( "(") (comma_expression "pppppbVar33 = (byte *****)ppppbStack_e8,\n                             (byte *****)ppppbStack_e8 == (byte *****)0x0" (assignment_expression "pppppbVar33 = (byte *****)ppppbStack_e8" (identifier "pppppbVar33") (= "=") (cast_expression "(byte *****)ppppbStack_e8" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_e8"))) (, ",") (binary_expression "(byte *****)ppppbStack_e8 == (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_e8" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_e8")) (== "==") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_0007901c;" (goto "goto") (statement_identifier "LAB_0007901c") (; ";"))) (expression_statement "pbVar28 = (byte *)((int)pppppbVar36 + iVar27);" (assignment_expression "pbVar28 = (byte *)((int)pppppbVar36 + iVar27)" (identifier "pbVar28") (= "=") (cast_expression "(byte *)((int)pppppbVar36 + iVar27)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar36 + iVar27)" (( "(") (binary_expression "(int)pppppbVar36 + iVar27" (cast_expression "(int)pppppbVar36" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar36")) (+ "+") (identifier "iVar27")) () ")")))) (; ";")) (expression_statement "bVar1 = *pbVar28;" (assignment_expression "bVar1 = *pbVar28" (identifier "bVar1") (= "=") (pointer_expression "*pbVar28" (* "*") (identifier "pbVar28"))) (; ";")) (expression_statement "bVar2 = pbVar28[1];" (assignment_expression "bVar2 = pbVar28[1]" (identifier "bVar2") (= "=") (subscript_expression "pbVar28[1]" (identifier "pbVar28") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "bVar3 = pbVar28[3];" (assignment_expression "bVar3 = pbVar28[3]" (identifier "bVar3") (= "=") (subscript_expression "pbVar28[3]" (identifier "pbVar28") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "bVar4 = pbVar28[2];" (assignment_expression "bVar4 = pbVar28[2]" (identifier "bVar4") (= "=") (subscript_expression "pbVar28[2]" (identifier "pbVar28") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)\n                          ;" (assignment_expression "ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)" (identifier "ppppbStack_e8") (= "=") (cast_expression "(byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38164))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38164)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38164)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38164)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38164)" (( "(") (binary_expression "pcVar40 + 0x38164" (identifier "pcVar40") (+ "+") (number_literal "0x38164")) () ")"))))) () ")")) (argument_list "(ppppbStack_e8)" (( "(") (identifier "ppppbStack_e8") () ")"))))) (; ";")) (expression_statement "ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8);" (assignment_expression "ppppbStack_e4 =\n                               (byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8)" (identifier "ppppbStack_e4") (= "=") (cast_expression "(byte ****)\n                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8)" (( "(") (binary_expression "(uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |\n                               (uint)bVar4 << 8" (binary_expression "(uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10" (binary_expression "(uint)bVar1 << 0x18 | (uint)bVar3" (binary_expression "(uint)bVar1 << 0x18" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (<< "<<") (number_literal "0x18")) (| "|") (cast_expression "(uint)bVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar3"))) (| "|") (binary_expression "(uint)bVar2 << 0x10" (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2")) (<< "<<") (number_literal "0x10"))) (| "|") (binary_expression "(uint)bVar4 << 8" (cast_expression "(uint)bVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar4")) (<< "<<") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);" (assignment_expression "pppppbVar35 = (byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0)" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)\n                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (call_expression "find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0)" (identifier "find234") (argument_list "(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar18 + 0x4048)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4048)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4048)" (( "(") (binary_expression "iVar18 + 0x4048" (identifier "iVar18") (+ "+") (number_literal "0x4048")) () ")")))) (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbStack_e8)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38124)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) () ")")) (argument_list "(ppppbStack_e8)" (( "(") (identifier "ppppbStack_e8") () ")"))) (; ";")) (if_statement "if (pppppbVar35 == (byte *****)0x0) {\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }\n                          else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }" (if "if") (parenthesized_expression "(pppppbVar35 == (byte *****)0x0)" (( "(") (binary_expression "pppppbVar35 == (byte *****)0x0" (identifier "pppppbVar35") (== "==") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                            if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }\n                          }" ({ "{") (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38124);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38124)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) (; ";")) (if_statement "if (bVar21 != 0) {\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }" (if "if") (parenthesized_expression "(bVar21 != 0)" (( "(") (binary_expression "bVar21 != 0" (identifier "bVar21") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);\n                              goto LAB_000784c4;\n                            }" ({ "{") (expression_statement "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc);" (call_expression "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc)" (identifier "FUN_000768e4") (argument_list "(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,\n                                           0xc)" (( "(") (binary_expression "iVar18 + 8" (identifier "iVar18") (+ "+") (number_literal "8")) (, ",") (number_literal "0x52") (, ",") (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x2d54" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" (* "*") (cast_expression "(int *)(pcVar40 + 0x380fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x380fc)" (( "(") (binary_expression "pcVar40 + 0x380fc" (identifier "pcVar40") (+ "+") (number_literal "0x380fc")) () ")")))) (+ "+") (number_literal "0x2d54")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0xc") () ")"))) (; ";")) (goto_statement "goto LAB_000784c4;" (goto "goto") (statement_identifier "LAB_000784c4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }" (else "else") (compound_statement "{\n                            bVar21 = *(byte *)ppppbStack_108;\n                            *(byte *)ppppbStack_108 = 1;\n                            if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }\n                            (**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                            (**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\nLAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);\n                          }" ({ "{") (expression_statement "bVar21 = *(byte *)ppppbStack_108;" (assignment_expression "bVar21 = *(byte *)ppppbStack_108" (identifier "bVar21") (= "=") (pointer_expression "*(byte *)ppppbStack_108" (* "*") (cast_expression "(byte *)ppppbStack_108" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppbStack_108")))) (; ";")) (expression_statement "*(byte *)ppppbStack_108 = 1;" (assignment_expression "*(byte *)ppppbStack_108 = 1" (pointer_expression "*(byte *)ppppbStack_108" (* "*") (cast_expression "(byte *)ppppbStack_108" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppbStack_108"))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (bVar21 == 0) {\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }\n                            else {\n                              iVar22 = 0;\n                            }" (if "if") (parenthesized_expression "(bVar21 == 0)" (( "(") (binary_expression "bVar21 == 0" (identifier "bVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                            }" ({ "{") (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec" (identifier "iVar22") (= "=") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x41ec" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x41ec"))) (; ";")) (} "}")) (else_clause "else {\n                              iVar22 = 0;\n                            }" (else "else") (compound_statement "{\n                              iVar22 = 0;\n                            }" ({ "{") (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x388fc)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x388fc)" (* "*") (cast_expression "(code **)(pcVar40 + 0x388fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x388fc)" (( "(") (binary_expression "pcVar40 + 0x388fc" (identifier "pcVar40") (+ "+") (number_literal "0x388fc")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar18 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 4)" (( "(") (binary_expression "iVar18 + 4" (identifier "iVar18") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0x50") (, ",") (identifier "iVar27") (, ",") (identifier "pbVar31") (, ",") (identifier "iVar22") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);" (call_expression "(**(code **)(pcVar40 + 0x38910))\n                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38910))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38910)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38910)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38910)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38910)" (( "(") (binary_expression "pcVar40 + 0x38910" (identifier "pcVar40") (+ "+") (number_literal "0x38910")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "iVar18") () ")"))) (; ";")) (labeled_statement "LAB_000784c4:\n                            pcVar38 = *(code **)(pcVar40 + 0x38124);" (statement_identifier "LAB_000784c4") (: ":") (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38124);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38124)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) (; ";"))) (} "}")))) (expression_statement "(*pcVar38)(pppppbVar32);" (call_expression "(*pcVar38)(pppppbVar32)" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "(pppppbVar32)" (( "(") (identifier "pppppbVar32") () ")"))) (; ";")) (goto_statement "goto LAB_000784d4;" (goto "goto") (statement_identifier "LAB_000784d4") (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_0007882c;" (goto "goto") (statement_identifier "LAB_0007882c") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }" (else "else") (compound_statement "{\nLAB_00079040:\n                    (*pcVar38)();\n                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n                    pppppbVar33 = pppppbVar32;\n                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }\n                  }" ({ "{") (labeled_statement "LAB_00079040:\n                    (*pcVar38)();" (statement_identifier "LAB_00079040") (: ":") (expression_statement "(*pcVar38)();" (call_expression "(*pcVar38)()" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);" (assignment_expression "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" (identifier "iVar22") (= "=") (call_expression "FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" (identifier "FUN_00076af0") (argument_list "(iVar27,pbVar31,0,&ppppbStack_e8)" (( "(") (identifier "iVar27") (, ",") (identifier "pbVar31") (, ",") (number_literal "0") (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) () ")")))) (; ";")) (expression_statement "pppppbVar33 = pppppbVar32;" (assignment_expression "pppppbVar33 = pppppbVar32" (identifier "pppppbVar33") (= "=") (identifier "pppppbVar32")) (; ";")) (if_statement "if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)) {\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }" (if "if") (parenthesized_expression "(((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31))" (( "(") (binary_expression "((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&\n                       ((int)ppppbStack_e8 < (int)pbVar31)" (parenthesized_expression "((iVar22 != 0) && (-1 < (int)ppppbStack_e8))" (( "(") (binary_expression "(iVar22 != 0) && (-1 < (int)ppppbStack_e8)" (parenthesized_expression "(iVar22 != 0)" (( "(") (binary_expression "iVar22 != 0" (identifier "iVar22") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(-1 < (int)ppppbStack_e8)" (( "(") (binary_expression "-1 < (int)ppppbStack_e8" (number_literal "-1") (< "<") (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((int)ppppbStack_e8 < (int)pbVar31)" (( "(") (binary_expression "(int)ppppbStack_e8 < (int)pbVar31" (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8")) (< "<") (cast_expression "(int)pbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar31"))) () ")"))) () ")")) (compound_statement "{\n                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;\n                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      *(undefined4 *)(iVar18 + 0x4030) = 0;\n                      goto LAB_000784dc;\n                    }" ({ "{") (if_statement "if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;" (if "if") (parenthesized_expression "(*(byte *)((int)ppppbStack_e8 + iVar27) == 0)" (( "(") (binary_expression "*(byte *)((int)ppppbStack_e8 + iVar27) == 0" (pointer_expression "*(byte *)((int)ppppbStack_e8 + iVar27)" (* "*") (cast_expression "(byte *)((int)ppppbStack_e8 + iVar27)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppbStack_e8 + iVar27)" (( "(") (binary_expression "(int)ppppbStack_e8 + iVar27" (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8")) (+ "+") (identifier "iVar27")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000784d4;" (goto "goto") (statement_identifier "LAB_000784d4") (; ";"))) (expression_statement "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);" (call_expression "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc)" (identifier "FUN_000768e4") (argument_list "(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc)" (( "(") (binary_expression "iVar18 + 8" (identifier "iVar18") (+ "+") (number_literal "8")) (, ",") (number_literal "0x52") (, ",") (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x2d54" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" (* "*") (cast_expression "(int *)(pcVar40 + 0x380fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x380fc)" (( "(") (binary_expression "pcVar40 + 0x380fc" (identifier "pcVar40") (+ "+") (number_literal "0x380fc")) () ")")))) (+ "+") (number_literal "0x2d54")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0xc") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000784dc;" (goto "goto") (statement_identifier "LAB_000784dc") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00078828:\n                  iVar22 = *(int *)(pcVar40 + 0x38144);" (statement_identifier "LAB_00078828") (: ":") (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")"))))) (; ";"))) (goto_statement "goto LAB_0007882c;" (goto "goto") (statement_identifier "LAB_0007882c") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbVar12);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38124)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) () ")")) (argument_list "(ppppbVar12)" (( "(") (identifier "ppppbVar12") () ")"))) (; ";")) (expression_statement "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);" (assignment_expression "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" (identifier "iVar22") (= "=") (call_expression "FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" (identifier "FUN_00076af0") (argument_list "(iVar27,pbVar31,0,&ppppbStack_e8)" (( "(") (identifier "iVar27") (, ",") (identifier "pbVar31") (, ",") (number_literal "0") (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) () ")")))) (; ";")) (expression_statement "pppppbVar32 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar32 = (byte *****)ppppbStack_e8" (identifier "pppppbVar32") (= "=") (cast_expression "(byte *****)ppppbStack_e8" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_e8"))) (; ";")) (if_statement "if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))\n                goto LAB_00078828;" (if "if") (parenthesized_expression "(((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))" (( "(") (binary_expression "((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8)" (parenthesized_expression "((iVar22 == 0) || ((int)ppppbStack_e8 < 0))" (( "(") (binary_expression "(iVar22 == 0) || ((int)ppppbStack_e8 < 0)" (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((int)ppppbStack_e8 < 0)" (( "(") (binary_expression "(int)ppppbStack_e8 < 0" (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8")) (< "<") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8)" (( "(") (comma_expression "pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8" (assignment_expression "pbVar28 = (byte *)((int)ppppbStack_e8 + 1)" (identifier "pbVar28") (= "=") (cast_expression "(byte *)((int)ppppbStack_e8 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppbStack_e8 + 1)" (( "(") (binary_expression "(int)ppppbStack_e8 + 1" (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8")) (+ "+") (number_literal "1")) () ")")))) (, ",") (binary_expression "(int)pbVar31 <= (int)ppppbStack_e8" (cast_expression "(int)pbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar31")) (<= "<=") (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8")))) () ")"))) () ")")) (goto_statement "goto LAB_00078828;" (goto "goto") (statement_identifier "LAB_00078828") (; ";"))) (expression_statement "pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);" (assignment_expression "pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27)" (identifier "pbVar16") (= "=") (cast_expression "(byte *)((int)ppppbStack_e8 + iVar27)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppbStack_e8 + iVar27)" (( "(") (binary_expression "(int)ppppbStack_e8 + iVar27" (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8")) (+ "+") (identifier "iVar27")) () ")")))) (; ";")) (expression_statement "iVar11 = (int)pbVar31 - (int)pbVar28;" (assignment_expression "iVar11 = (int)pbVar31 - (int)pbVar28" (identifier "iVar11") (= "=") (binary_expression "(int)pbVar31 - (int)pbVar28" (cast_expression "(int)pbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar31")) (- "-") (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")))) (; ";")) (expression_statement "ppppbStack_108 = (byte ****)(uint)*pbVar16;" (assignment_expression "ppppbStack_108 = (byte ****)(uint)*pbVar16" (identifier "ppppbStack_108") (= "=") (binary_expression "(byte ****)(uint)*pbVar16" (cast_expression "(byte ****)(uint)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "pbVar16"))) (; ";")) (if_statement "if ((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }\n                else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }" (if "if") (parenthesized_expression "((iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0))" (( "(") (binary_expression "(iVar11 < 4) ||\n                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)" (parenthesized_expression "(iVar11 < 4)" (( "(") (binary_expression "iVar11 < 4" (identifier "iVar11") (< "<") (number_literal "4")) () ")")) (|| "||") (parenthesized_expression "(iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)" (( "(") (comma_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0" (assignment_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" (identifier "iVar22") (= "=") (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" (identifier "FUN_00076af0") (argument_list "(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" (( "(") (binary_expression "pbVar28 + iVar27" (identifier "pbVar28") (+ "+") (identifier "iVar27")) (, ",") (identifier "iVar11") (, ",") (number_literal "0") (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) () ")")))) (, ",") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }\nLAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                }" ({ "{") (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")"))))) (; ";")) (if_statement "if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }" (if "if") (parenthesized_expression "((int)pppppbVar32 < (int)(pppppbVar35 + -2))" (( "(") (binary_expression "(int)pppppbVar32 < (int)(pppppbVar35 + -2)" (cast_expression "(int)pppppbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar32")) (< "<") (cast_expression "(int)(pppppbVar35 + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pppppbVar35 + -2)" (( "(") (binary_expression "pppppbVar35 + -2" (identifier "pppppbVar35") (+ "+") (number_literal "-2")) () ")")))) () ")")) (compound_statement "{\n                    if (iVar11 >= 4) goto LAB_0007918c;\nLAB_00079434:\n                    uVar41 = 0x55e;\nLAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);\n                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);\n                    pppppbVar32 = pppppbVar33;\n                    goto LAB_00079040;\n                  }" ({ "{") (if_statement "if (iVar11 >= 4) goto LAB_0007918c;" (if "if") (parenthesized_expression "(iVar11 >= 4)" (( "(") (binary_expression "iVar11 >= 4" (identifier "iVar11") (>= ">=") (number_literal "4")) () ")")) (goto_statement "goto LAB_0007918c;" (goto "goto") (statement_identifier "LAB_0007918c") (; ";"))) (labeled_statement "LAB_00079434:\n                    uVar41 = 0x55e;" (statement_identifier "LAB_00079434") (: ":") (expression_statement "uVar41 = 0x55e;" (assignment_expression "uVar41 = 0x55e" (identifier "uVar41") (= "=") (number_literal "0x55e")) (; ";"))) (labeled_statement "LAB_00079020:\n                    pcVar38 = *(code **)(pcVar40 + 0x38a34);" (statement_identifier "LAB_00079020") (: ":") (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38a34);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38a34)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(pcVar40 + 0x38a34)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38a34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38a34)" (( "(") (binary_expression "pcVar40 + 0x38a34" (identifier "pcVar40") (+ "+") (number_literal "0x38a34")) () ")"))))) (; ";"))) (expression_statement "(*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30);" (call_expression "(*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30)" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x4124,\n                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,\n                               *(int *)(pcVar40 + 0x38144) + -0x3e30)" (( "(") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x4124" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x4124")) (, ",") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x42c4" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x42c4")) (, ",") (identifier "uVar41") (, ",") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3e30" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x3e30")) () ")"))) (; ";")) (expression_statement "pppppbVar32 = pppppbVar33;" (assignment_expression "pppppbVar32 = pppppbVar33" (identifier "pppppbVar32") (= "=") (identifier "pppppbVar33")) (; ";")) (goto_statement "goto LAB_00079040;" (goto "goto") (statement_identifier "LAB_00079040") (; ";")) (} "}"))) (labeled_statement "LAB_0007882c:\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);" (statement_identifier "LAB_0007882c") (: ":") (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38158);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38158)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(pcVar40 + 0x38158)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38158)" (( "(") (binary_expression "pcVar40 + 0x38158" (identifier "pcVar40") (+ "+") (number_literal "0x38158")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }" (else "else") (compound_statement "{\n                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);\n                  iVar22 = *(int *)(pcVar40 + 0x38144);\n                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }\n                }" ({ "{") (expression_statement "pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);" (assignment_expression "pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8)" (identifier "pppppbVar32") (= "=") (cast_expression "(byte *****)(pbVar28 + (int)ppppbStack_e8)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(pbVar28 + (int)ppppbStack_e8)" (( "(") (binary_expression "pbVar28 + (int)ppppbStack_e8" (identifier "pbVar28") (+ "+") (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8"))) () ")")))) (; ";")) (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")"))))) (; ";")) (if_statement "if ((int)pppppbVar32 < 0) goto LAB_0007882c;" (if "if") (parenthesized_expression "((int)pppppbVar32 < 0)" (( "(") (binary_expression "(int)pppppbVar32 < 0" (cast_expression "(int)pppppbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar32")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007882c;" (goto "goto") (statement_identifier "LAB_0007882c") (; ";"))) (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38158);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38158)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(pcVar40 + 0x38158)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38158)" (( "(") (binary_expression "pcVar40 + 0x38158" (identifier "pcVar40") (+ "+") (number_literal "0x38158")) () ")"))))) (; ";")) (if_statement "if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }" (if "if") (parenthesized_expression "((int)pppppbVar32 < (int)(pppppbVar35 + -2))" (( "(") (binary_expression "(int)pppppbVar32 < (int)(pppppbVar35 + -2)" (cast_expression "(int)pppppbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar32")) (< "<") (cast_expression "(int)(pppppbVar35 + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pppppbVar35 + -2)" (( "(") (binary_expression "pppppbVar35 + -2" (identifier "pppppbVar35") (+ "+") (number_literal "-2")) () ")")))) () ")")) (compound_statement "{\nLAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                    ppppbVar12 = ppppbStack_e8;\n                    if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;\n                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);\n                    pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);\n                    iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);\n                    if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }\n                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                    pppppbVar35 = (byte *****)ppppbVar12;\n                    goto LAB_000784dc;\n                  }" ({ "{") (labeled_statement "LAB_0007918c:\n                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);" (statement_identifier "LAB_0007918c") (: ":") (expression_statement "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);" (assignment_expression "iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" (identifier "iVar22") (= "=") (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" (identifier "FUN_00076af0") (argument_list "(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" (( "(") (binary_expression "pbVar28 + iVar27" (identifier "pbVar28") (+ "+") (identifier "iVar27")) (, ",") (identifier "iVar11") (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) (, ",") (number_literal "0") () ")")))) (; ";"))) (expression_statement "ppppbVar12 = ppppbStack_e8;" (assignment_expression "ppppbVar12 = ppppbStack_e8" (identifier "ppppbVar12") (= "=") (identifier "ppppbStack_e8")) (; ";")) (if_statement "if ((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;" (if "if") (parenthesized_expression "((iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0))" (( "(") (binary_expression "(iVar22 == 0) ||\n                       (pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)" (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0)" (( "(") (comma_expression "pppppbVar35 = (byte *****)ppppbStack_e8,\n                       (byte *****)ppppbStack_e8 == (byte *****)0x0" (assignment_expression "pppppbVar35 = (byte *****)ppppbStack_e8" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)ppppbStack_e8" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_e8"))) (, ",") (binary_expression "(byte *****)ppppbStack_e8 == (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_e8" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_e8")) (== "==") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_00079434;" (goto "goto") (statement_identifier "LAB_00079434") (; ";"))) (expression_statement "pbVar28 = (byte *)((int)pppppbVar32 + iVar27);" (assignment_expression "pbVar28 = (byte *)((int)pppppbVar32 + iVar27)" (identifier "pbVar28") (= "=") (cast_expression "(byte *)((int)pppppbVar32 + iVar27)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar32 + iVar27)" (( "(") (binary_expression "(int)pppppbVar32 + iVar27" (cast_expression "(int)pppppbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar32")) (+ "+") (identifier "iVar27")) () ")")))) (; ";")) (expression_statement "pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);" (assignment_expression "pppppbVar32 = (byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8)" (identifier "pppppbVar32") (= "=") (cast_expression "(byte *****)\n                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8)" (( "(") (binary_expression "(uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8" (binary_expression "(uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |\n                                   (uint)pbVar28[1] << 0x10" (binary_expression "(uint)*pbVar28 << 0x18 | (uint)pbVar28[3]" (binary_expression "(uint)*pbVar28 << 0x18" (binary_expression "(uint)*pbVar28" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar28")) (<< "<<") (number_literal "0x18")) (| "|") (cast_expression "(uint)pbVar28[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar28[3]" (identifier "pbVar28") ([ "[") (number_literal "3") (] "]")))) (| "|") (binary_expression "(uint)pbVar28[1] << 0x10" (cast_expression "(uint)pbVar28[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar28[1]" (identifier "pbVar28") ([ "[") (number_literal "1") (] "]"))) (<< "<<") (number_literal "0x10"))) (| "|") (binary_expression "(uint)pbVar28[2] << 8" (cast_expression "(uint)pbVar28[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar28[2]" (identifier "pbVar28") ([ "[") (number_literal "2") (] "]"))) (<< "<<") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18);" (assignment_expression "iVar22 = (**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18)" (identifier "iVar22") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38928))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38928))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38928)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38928)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38928)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38928)" (( "(") (binary_expression "pcVar40 + 0x38928" (identifier "pcVar40") (+ "+") (number_literal "0x38928")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8\n                                        ,pppppbVar32,iVar18)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "ppppbStack_e8") (, ",") (identifier "pppppbVar32") (, ",") (identifier "iVar18") () ")")))) (; ";")) (if_statement "if (iVar22 == 0) {\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }\n                    else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }" (if "if") (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }\n                    }" ({ "{") (if_statement "if ((byte *****)ppppbStack_108 != (byte *****)0x0) {\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }" (if "if") (parenthesized_expression "((byte *****)ppppbStack_108 != (byte *****)0x0)" (( "(") (binary_expression "(byte *****)ppppbStack_108 != (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_108" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_108")) (!= "!=") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);\n                      }" ({ "{") (expression_statement "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);" (call_expression "FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc)" (identifier "FUN_000768e4") (argument_list "(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc)" (( "(") (binary_expression "iVar18 + 8" (identifier "iVar18") (+ "+") (number_literal "8")) (, ",") (number_literal "0x52") (, ",") (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x2d54" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" (* "*") (cast_expression "(int *)(pcVar40 + 0x380fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x380fc)" (( "(") (binary_expression "pcVar40 + 0x380fc" (identifier "pcVar40") (+ "+") (number_literal "0x380fc")) () ")")))) (+ "+") (number_literal "0x2d54")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0xc") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }" (else "else") (compound_statement "{\n                      bVar21 = *pbVar16;\n                      *pbVar16 = 1;\n                      if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }\n                      (**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);\n                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);\n                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);\n                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);\n                      *puVar29 = uVar41;\n                      puVar29[1] = pppppbVar32;\n                      puVar29[2] = 0;\n                      puVar17 = (undefined4 *)add234(uVar19,puVar29);\n                      if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }\n                    }" ({ "{") (expression_statement "bVar21 = *pbVar16;" (assignment_expression "bVar21 = *pbVar16" (identifier "bVar21") (= "=") (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16"))) (; ";")) (expression_statement "*pbVar16 = 1;" (assignment_expression "*pbVar16 = 1" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (= "=") (number_literal "1")) (; ";")) (if_statement "if (bVar21 == 0) {\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }\n                      else {\n                        iVar22 = 0;\n                      }" (if "if") (parenthesized_expression "(bVar21 == 0)" (( "(") (binary_expression "bVar21 == 0" (identifier "bVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;\n                      }" ({ "{") (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec" (identifier "iVar22") (= "=") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x41ec" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x41ec"))) (; ";")) (} "}")) (else_clause "else {\n                        iVar22 = 0;\n                      }" (else "else") (compound_statement "{\n                        iVar22 = 0;\n                      }" ({ "{") (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" (identifier "iVar22") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x388fc)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x388fc)" (* "*") (cast_expression "(code **)(pcVar40 + 0x388fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x388fc)" (( "(") (binary_expression "pcVar40 + 0x388fc" (identifier "pcVar40") (+ "+") (number_literal "0x388fc")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar18 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 4)" (( "(") (binary_expression "iVar18 + 4" (identifier "iVar18") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0x50") (, ",") (identifier "iVar27") (, ",") (identifier "pbVar31") (, ",") (identifier "iVar22") () ")"))) (; ";")) (expression_statement "puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);" (assignment_expression "puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc)" (identifier "puVar29") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar40 + 0x3815c))(1,0xc)" (parenthesized_expression "(**(code **)(pcVar40 + 0x3815c))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x3815c)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x3815c)" (* "*") (cast_expression "(code **)(pcVar40 + 0x3815c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x3815c)" (( "(") (binary_expression "pcVar40 + 0x3815c" (identifier "pcVar40") (+ "+") (number_literal "0x3815c")) () ")"))))) () ")")) (argument_list "(1,0xc)" (( "(") (number_literal "1") (, ",") (number_literal "0xc") () ")"))))) (; ";")) (expression_statement "uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);" (assignment_expression "uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12)" (identifier "uVar41") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38164))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38164))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38164)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38164)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38164)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38164)" (( "(") (binary_expression "pcVar40 + 0x38164" (identifier "pcVar40") (+ "+") (number_literal "0x38164")) () ")"))))) () ")")) (argument_list "(ppppbVar12)" (( "(") (identifier "ppppbVar12") () ")")))) (; ";")) (expression_statement "uVar19 = *(undefined4 *)(iVar18 + 0x4048);" (assignment_expression "uVar19 = *(undefined4 *)(iVar18 + 0x4048)" (identifier "uVar19") (= "=") (pointer_expression "*(undefined4 *)(iVar18 + 0x4048)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4048)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4048)" (( "(") (binary_expression "iVar18 + 0x4048" (identifier "iVar18") (+ "+") (number_literal "0x4048")) () ")"))))) (; ";")) (expression_statement "*puVar29 = uVar41;" (assignment_expression "*puVar29 = uVar41" (pointer_expression "*puVar29" (* "*") (identifier "puVar29")) (= "=") (identifier "uVar41")) (; ";")) (expression_statement "puVar29[1] = pppppbVar32;" (assignment_expression "puVar29[1] = pppppbVar32" (subscript_expression "puVar29[1]" (identifier "puVar29") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "pppppbVar32")) (; ";")) (expression_statement "puVar29[2] = 0;" (assignment_expression "puVar29[2] = 0" (subscript_expression "puVar29[2]" (identifier "puVar29") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar17 = (undefined4 *)add234(uVar19,puVar29);" (assignment_expression "puVar17 = (undefined4 *)add234(uVar19,puVar29)" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)add234(uVar19,puVar29)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "add234(uVar19,puVar29)" (identifier "add234") (argument_list "(uVar19,puVar29)" (( "(") (identifier "uVar19") (, ",") (identifier "puVar29") () ")"))))) (; ";")) (if_statement "if (puVar29 == puVar17) {\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }\n                      else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }" (if "if") (parenthesized_expression "(puVar29 == puVar17)" (( "(") (binary_expression "puVar29 == puVar17" (identifier "puVar29") (== "==") (identifier "puVar17")) () ")")) (compound_statement "{\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);\n                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);\n                        *puVar17 = 0;\n                        if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }\n                        puVar17[3] = puVar29;\n                        puVar17[1] = 0;\n                        puVar17[2] = ppppbStack_108;\n                      }" ({ "{") (expression_statement "(**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);" (call_expression "(**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38910))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38910)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38910)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38910)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38910)" (( "(") (binary_expression "pcVar40 + 0x38910" (identifier "pcVar40") (+ "+") (number_literal "0x38910")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "iVar18") () ")"))) (; ";")) (expression_statement "puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);" (assignment_expression "puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10)" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar40 + 0x3815c))(1,0x10)" (parenthesized_expression "(**(code **)(pcVar40 + 0x3815c))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x3815c)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x3815c)" (* "*") (cast_expression "(code **)(pcVar40 + 0x3815c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x3815c)" (( "(") (binary_expression "pcVar40 + 0x3815c" (identifier "pcVar40") (+ "+") (number_literal "0x3815c")) () ")"))))) () ")")) (argument_list "(1,0x10)" (( "(") (number_literal "1") (, ",") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "puVar20 = *(undefined4 **)(iVar18 + 0x4050);" (assignment_expression "puVar20 = *(undefined4 **)(iVar18 + 0x4050)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined4 **)(iVar18 + 0x4050)" (* "*") (cast_expression "(undefined4 **)(iVar18 + 0x4050)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar18 + 0x4050)" (( "(") (binary_expression "iVar18 + 0x4050" (identifier "iVar18") (+ "+") (number_literal "0x4050")) () ")"))))) (; ";")) (expression_statement "*puVar17 = 0;" (assignment_expression "*puVar17 = 0" (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar20 == (undefined4 *)0x0) {\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }\n                        else {\n                          *puVar20 = puVar17;\n                        }" (if "if") (parenthesized_expression "(puVar20 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar20 == (undefined4 *)0x0" (identifier "puVar20") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;\n                        }" ({ "{") (expression_statement "*(undefined4 **)(iVar18 + 0x404c) = puVar17;" (assignment_expression "*(undefined4 **)(iVar18 + 0x404c) = puVar17" (pointer_expression "*(undefined4 **)(iVar18 + 0x404c)" (* "*") (cast_expression "(undefined4 **)(iVar18 + 0x404c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar18 + 0x404c)" (( "(") (binary_expression "iVar18 + 0x404c" (identifier "iVar18") (+ "+") (number_literal "0x404c")) () ")")))) (= "=") (identifier "puVar17")) (; ";")) (} "}")) (else_clause "else {\n                          *puVar20 = puVar17;\n                        }" (else "else") (compound_statement "{\n                          *puVar20 = puVar17;\n                        }" ({ "{") (expression_statement "*puVar20 = puVar17;" (assignment_expression "*puVar20 = puVar17" (pointer_expression "*puVar20" (* "*") (identifier "puVar20")) (= "=") (identifier "puVar17")) (; ";")) (} "}")))) (expression_statement "puVar17[3] = puVar29;" (assignment_expression "puVar17[3] = puVar29" (subscript_expression "puVar17[3]" (identifier "puVar17") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "puVar29")) (; ";")) (expression_statement "puVar17[1] = 0;" (assignment_expression "puVar17[1] = 0" (subscript_expression "puVar17[1]" (identifier "puVar17") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar17[2] = ppppbStack_108;" (assignment_expression "puVar17[2] = ppppbStack_108" (subscript_expression "puVar17[2]" (identifier "puVar17") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "ppppbStack_108")) (; ";")) (} "}")) (else_clause "else {\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }" (else "else") (compound_statement "{\n                        (**(code **)(pcVar40 + 0x38124))(puVar29);\n                        (**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n                      }" ({ "{") (expression_statement "(**(code **)(pcVar40 + 0x38124))(puVar29);" (call_expression "(**(code **)(pcVar40 + 0x38124))(puVar29)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38124)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) () ")")) (argument_list "(puVar29)" (( "(") (identifier "puVar29") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);" (call_expression "(**(code **)(pcVar40 + 0x38910))\n                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38910))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38910)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38910)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38910)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38910)" (( "(") (binary_expression "pcVar40 + 0x38910" (identifier "pcVar40") (+ "+") (number_literal "0x38910")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "iVar18") () ")"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbVar12);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38124)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) () ")")) (argument_list "(ppppbVar12)" (( "(") (identifier "ppppbVar12") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pppppbVar35 = (byte *****)ppppbVar12;" (assignment_expression "pppppbVar35 = (byte *****)ppppbVar12" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)ppppbVar12" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbVar12"))) (; ";")) (goto_statement "goto LAB_000784dc;" (goto "goto") (statement_identifier "LAB_000784dc") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00078830:\n                iVar27 = (*pcVar38)(iVar22 + -0x4144);" (statement_identifier "LAB_00078830") (: ":") (expression_statement "iVar27 = (*pcVar38)(iVar22 + -0x4144);" (assignment_expression "iVar27 = (*pcVar38)(iVar22 + -0x4144)" (identifier "iVar27") (= "=") (call_expression "(*pcVar38)(iVar22 + -0x4144)" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "(iVar22 + -0x4144)" (( "(") (binary_expression "iVar22 + -0x4144" (identifier "iVar22") (+ "+") (number_literal "-0x4144")) () ")")))) (; ";"))) (expression_statement "pppppbVar32 = pppppbVar33;" (assignment_expression "pppppbVar32 = pppppbVar33" (identifier "pppppbVar32") (= "=") (identifier "pppppbVar33")) (; ";")) (goto_statement "goto LAB_000787a4;" (goto "goto") (statement_identifier "LAB_000787a4") (; ";")) (} "}"))) (if_statement "if (bVar21 != 1) {\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }" (if "if") (parenthesized_expression "(bVar21 != 1)" (( "(") (binary_expression "bVar21 != 1" (identifier "bVar21") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\nLAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);\n                goto LAB_000787a4;\n              }" ({ "{") (labeled_statement "LAB_0007878c:\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);" (statement_identifier "LAB_0007878c") (: ":") (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21)" (identifier "iVar27") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38158)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38158)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38158)" (( "(") (binary_expression "pcVar40 + 0x38158" (identifier "pcVar40") (+ "+") (number_literal "0x38158")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21)" (( "(") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3f54" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x3f54")) (, ",") (identifier "bVar21") () ")")))) (; ";"))) (goto_statement "goto LAB_000787a4;" (goto "goto") (statement_identifier "LAB_000787a4") (; ";")) (} "}"))) (expression_statement "(**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));" (call_expression "(**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8))" (parenthesized_expression "(**(code **)(**(int **)(iVar18 + 8) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar18 + 8) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar18 + 8) + 4)" (* "*") (cast_expression "(code **)(**(int **)(iVar18 + 8) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar18 + 8) + 4)" (( "(") (binary_expression "**(int **)(iVar18 + 8) + 4" (pointer_expression "**(int **)(iVar18 + 8)" (* "*") (pointer_expression "*(int **)(iVar18 + 8)" (* "*") (cast_expression "(int **)(iVar18 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar18 + 8)" (( "(") (binary_expression "iVar18 + 8" (identifier "iVar18") (+ "+") (number_literal "8")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(*(int **)(iVar18 + 8))" (( "(") (pointer_expression "*(int **)(iVar18 + 8)" (* "*") (cast_expression "(int **)(iVar18 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar18 + 8)" (( "(") (binary_expression "iVar18 + 8" (identifier "iVar18") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 8)" (( "(") (binary_expression "iVar18 + 8" (identifier "iVar18") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00077400(iVar18);" (call_expression "FUN_00077400(iVar18)" (identifier "FUN_00077400") (argument_list "(iVar18)" (( "(") (identifier "iVar18") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000784dc;" (goto "goto") (statement_identifier "LAB_000784dc") (; ";")) (} "}"))) (labeled_statement "LAB_00078844:\n            if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }" (statement_identifier "LAB_00078844") (: ":") (if_statement "if ((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }" (if "if") (parenthesized_expression "((bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9))" (( "(") (binary_expression "(bVar21 == 0x62) &&\n               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)" (parenthesized_expression "(bVar21 == 0x62)" (( "(") (binary_expression "bVar21 == 0x62" (identifier "bVar21") (== "==") (number_literal "0x62")) () ")")) (&& "&&") (parenthesized_expression "(pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)" (( "(") (comma_expression "pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9" (assignment_expression "pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c)" (identifier "pppppbVar32") (= "=") (pointer_expression "*(byte ******)(pcVar40 + 0x3885c)" (* "*") (cast_expression "(byte ******)(pcVar40 + 0x3885c)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(pcVar40 + 0x3885c)" (( "(") (binary_expression "pcVar40 + 0x3885c" (identifier "pcVar40") (+ "+") (number_literal "0x3885c")) () ")"))))) (, ",") (binary_expression "3 < (int)pppppbVar35 + -9" (number_literal "3") (< "<") (binary_expression "(int)pppppbVar35 + -9" (cast_expression "(int)pppppbVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar35")) (+ "+") (number_literal "-9")))) () ")"))) () ")")) (compound_statement "{\n              pppppbVar32 = pppppbVar32 + 0x1abc;\n              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);\n              ppppbVar12 = ppppbStack_e8;\n              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }\n            }" ({ "{") (expression_statement "pppppbVar32 = pppppbVar32 + 0x1abc;" (assignment_expression "pppppbVar32 = pppppbVar32 + 0x1abc" (identifier "pppppbVar32") (= "=") (binary_expression "pppppbVar32 + 0x1abc" (identifier "pppppbVar32") (+ "+") (number_literal "0x1abc"))) (; ";")) (expression_statement "iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);" (assignment_expression "iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0)" (identifier "iVar22") (= "=") (call_expression "FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0)" (identifier "FUN_00076af0") (argument_list "(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0)" (( "(") (binary_expression "iVar18 + 0x29" (identifier "iVar18") (+ "+") (number_literal "0x29")) (, ",") (cast_expression "(byte *)((int)pppppbVar35 + -9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar35 + -9)" (( "(") (binary_expression "(int)pppppbVar35 + -9" (cast_expression "(int)pppppbVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar35")) (+ "+") (number_literal "-9")) () ")"))) (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "ppppbVar12 = ppppbStack_e8;" (assignment_expression "ppppbVar12 = ppppbStack_e8" (identifier "ppppbVar12") (= "=") (identifier "ppppbStack_e8")) (; ";")) (if_statement "if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }" (if "if") (parenthesized_expression "((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0))" (( "(") (binary_expression "(iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)" (parenthesized_expression "(iVar22 != 0)" (( "(") (binary_expression "iVar22 != 0" (identifier "iVar22") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((byte *****)ppppbStack_e8 != (byte *****)0x0)" (( "(") (binary_expression "(byte *****)ppppbStack_e8 != (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_e8" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_e8")) (!= "!=") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n                ppppbStack_108 = ppppbStack_e8;\n                iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);\n                if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }\n                iVar22 = *(int *)(pcVar40 + 0x380fc);\n                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);\n                if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }\n                uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                uStack_e0 = uVar41;\n                ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }\n                if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }\n                cVar5 = *(char *)(iVar18 + 0x34);\n                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);\n                cVar6 = *(char *)(iVar18 + 0x35);\n                if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }\n                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);\n                iVar11 = (int)pbVar31 - (int)pbVar28;\n                pppppbVar35 = (byte *****)0x0;\n                if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }\n                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }\n                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;\n                if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }\n                goto LAB_00078f28;\n              }" ({ "{") (expression_statement "ppppbStack_108 = ppppbStack_e8;" (assignment_expression "ppppbStack_108 = ppppbStack_e8" (identifier "ppppbStack_108") (= "=") (identifier "ppppbStack_e8")) (; ";")) (expression_statement "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);" (assignment_expression "iVar22 = (**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300)" (identifier "iVar22") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38c4c))\n                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38c4c))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38c4c)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38c4c)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38c4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38c4c)" (( "(") (binary_expression "pcVar40 + 0x38c4c" (identifier "pcVar40") (+ "+") (number_literal "0x38c4c")) () ")"))))) () ")")) (argument_list "(ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300)" (( "(") (identifier "ppppbStack_e8") (, ",") (binary_expression "*(int *)(pcVar40 + 0x380fc) + 0x4300" (pointer_expression "*(int *)(pcVar40 + 0x380fc)" (* "*") (cast_expression "(int *)(pcVar40 + 0x380fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x380fc)" (( "(") (binary_expression "pcVar40 + 0x380fc" (identifier "pcVar40") (+ "+") (number_literal "0x380fc")) () ")")))) (+ "+") (number_literal "0x4300")) () ")")))) (; ";")) (if_statement "if ((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )) {\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }" (if "if") (parenthesized_expression "((iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   ))" (( "(") (binary_expression "(iVar22 == 0) &&\n                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )" (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0\n                   )" (( "(") (comma_expression "iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0" (assignment_expression "iVar22 = (**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14))" (identifier "iVar22") (= "=") (call_expression "(**(code **)(pcVar40 + 0x3865c))\n                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14))" (parenthesized_expression "(**(code **)(pcVar40 + 0x3865c))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x3865c)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x3865c)" (* "*") (cast_expression "(code **)(pcVar40 + 0x3865c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x3865c)" (( "(") (binary_expression "pcVar40 + 0x3865c" (identifier "pcVar40") (+ "+") (number_literal "0x3865c")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14))" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) () ")")))) (, ",") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                  uVar41 = *(undefined4 *)(iVar18 + 0x25);\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  uStack_e0 = uVar41;\n                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;\n                  if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  goto LAB_000784dc;\n                }" ({ "{") (expression_statement "uVar41 = *(undefined4 *)(iVar18 + 0x25);" (assignment_expression "uVar41 = *(undefined4 *)(iVar18 + 0x25)" (identifier "uVar41") (= "=") (pointer_expression "*(undefined4 *)(iVar18 + 0x25)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x25)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x25)" (( "(") (binary_expression "iVar18 + 0x25" (identifier "iVar18") (+ "+") (number_literal "0x25")) () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbVar12);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38124)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) () ")")) (argument_list "(ppppbVar12)" (( "(") (identifier "ppppbVar12") () ")"))) (; ";")) (expression_statement "uStack_e0 = uVar41;" (assignment_expression "uStack_e0 = uVar41" (identifier "uStack_e0") (= "=") (identifier "uVar41")) (; ";")) (expression_statement "puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)\n                  ;" (assignment_expression "puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" (identifier "puVar29") (= "=") (cast_expression "(undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" (identifier "find234") (argument_list "(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar18 + 0x403c)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x403c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x403c)" (( "(") (binary_expression "iVar18 + 0x403c" (identifier "iVar18") (+ "+") (number_literal "0x403c")) () ")")))) (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if (puVar29 == (undefined4 *)0x0) {\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }\n                  else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }" (if "if") (parenthesized_expression "(puVar29 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar29 == (undefined4 *)0x0" (identifier "puVar29") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    pcVar38 = *(code **)(pcVar40 + 0x38158);\n                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;\nLAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);\n                    FUN_00077910(iVar18,uVar41);\n                    (**(code **)(pcVar40 + 0x38124))(uVar41);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }" ({ "{") (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38158);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38158)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(pcVar40 + 0x38158)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38158)" (( "(") (binary_expression "pcVar40 + 0x38158" (identifier "pcVar40") (+ "+") (number_literal "0x38158")) () ")"))))) (; ";")) (expression_statement "iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;" (assignment_expression "iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8" (identifier "iVar27") (= "=") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3fe8" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x3fe8"))) (; ";")) (labeled_statement "LAB_000794d0:\n                    uVar41 = (*pcVar38)(iVar27,uVar41);" (statement_identifier "LAB_000794d0") (: ":") (expression_statement "uVar41 = (*pcVar38)(iVar27,uVar41);" (assignment_expression "uVar41 = (*pcVar38)(iVar27,uVar41)" (identifier "uVar41") (= "=") (call_expression "(*pcVar38)(iVar27,uVar41)" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "(iVar27,uVar41)" (( "(") (identifier "iVar27") (, ",") (identifier "uVar41") () ")")))) (; ";"))) (expression_statement "FUN_00077910(iVar18,uVar41);" (call_expression "FUN_00077910(iVar18,uVar41)" (identifier "FUN_00077910") (argument_list "(iVar18,uVar41)" (( "(") (identifier "iVar18") (, ",") (identifier "uVar41") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar40 + 0x38124))(uVar41);" (call_expression "(**(code **)(pcVar40 + 0x38124))(uVar41)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38124)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) () ")")) (argument_list "(uVar41)" (( "(") (identifier "uVar41") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }" (else "else") (compound_statement "{\n                    pppbStack_c0 = (byte ***)*puVar29;\n                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);\n                    *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  }" ({ "{") (expression_statement "pppbStack_c0 = (byte ***)*puVar29;" (assignment_expression "pppbStack_c0 = (byte ***)*puVar29" (identifier "pppbStack_c0") (= "=") (cast_expression "(byte ***)*puVar29" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (pointer_expression "*puVar29" (* "*") (identifier "puVar29")))) (; ";")) (expression_statement "FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);" (call_expression "FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc)" (identifier "FUN_000768e4") (argument_list "(iVar18 + 8,100,&pppbStack_c0,4,0,0xc)" (( "(") (binary_expression "iVar18 + 8" (identifier "iVar18") (+ "+") (number_literal "8")) (, ",") (number_literal "100") (, ",") (pointer_expression "&pppbStack_c0" (& "&") (identifier "pppbStack_c0")) (, ",") (number_literal "4") (, ",") (number_literal "0") (, ",") (number_literal "0xc") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (goto_statement "goto LAB_000784dc;" (goto "goto") (statement_identifier "LAB_000784dc") (; ";")) (} "}"))) (expression_statement "iVar22 = *(int *)(pcVar40 + 0x380fc);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x380fc)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(pcVar40 + 0x380fc)" (* "*") (cast_expression "(int *)(pcVar40 + 0x380fc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x380fc)" (( "(") (binary_expression "pcVar40 + 0x380fc" (identifier "pcVar40") (+ "+") (number_literal "0x380fc")) () ")"))))) (; ";")) (expression_statement "iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);" (assignment_expression "iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38c4c))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38c4c)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38c4c)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38c4c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38c4c)" (( "(") (binary_expression "pcVar40 + 0x38c4c" (identifier "pcVar40") (+ "+") (number_literal "0x38c4c")) () ")"))))) () ")")) (argument_list "(ppppbVar12,iVar22 + 0x429c)" (( "(") (identifier "ppppbVar12") (, ",") (binary_expression "iVar22 + 0x429c" (identifier "iVar22") (+ "+") (number_literal "0x429c")) () ")")))) (; ";")) (if_statement "if (iVar11 != 0) {\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);\n                  ppppbStack_108 = ppppbVar12;\n                  goto LAB_00078df8;\n                }" ({ "{") (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbVar12);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38124)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) () ")")) (argument_list "(ppppbVar12)" (( "(") (identifier "ppppbVar12") () ")"))) (; ";")) (expression_statement "ppppbStack_108 = ppppbVar12;" (assignment_expression "ppppbStack_108 = ppppbVar12" (identifier "ppppbStack_108") (= "=") (identifier "ppppbVar12")) (; ";")) (goto_statement "goto LAB_00078df8;" (goto "goto") (statement_identifier "LAB_00078df8") (; ";")) (} "}"))) (expression_statement "uVar41 = *(undefined4 *)(iVar18 + 0x25);" (assignment_expression "uVar41 = *(undefined4 *)(iVar18 + 0x25)" (identifier "uVar41") (= "=") (pointer_expression "*(undefined4 *)(iVar18 + 0x25)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x25)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x25)" (( "(") (binary_expression "iVar18 + 0x25" (identifier "iVar18") (+ "+") (number_literal "0x25")) () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar40 + 0x38124))(ppppbVar12);" (call_expression "(**(code **)(pcVar40 + 0x38124))(ppppbVar12)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38124)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) () ")")) (argument_list "(ppppbVar12)" (( "(") (identifier "ppppbVar12") () ")"))) (; ";")) (expression_statement "uStack_e0 = uVar41;" (assignment_expression "uStack_e0 = uVar41" (identifier "uStack_e0") (= "=") (identifier "uVar41")) (; ";")) (expression_statement "ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);" (assignment_expression "ppppbStack_108 =\n                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" (identifier "ppppbStack_108") (= "=") (cast_expression "(byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" (identifier "find234") (argument_list "(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar18 + 0x403c)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x403c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x403c)" (( "(") (binary_expression "iVar18 + 0x403c" (identifier "iVar18") (+ "+") (number_literal "0x403c")) () ")")))) (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if ((byte *****)ppppbStack_108 == (byte *****)0x0) {\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }" (if "if") (parenthesized_expression "((byte *****)ppppbStack_108 == (byte *****)0x0)" (( "(") (binary_expression "(byte *****)ppppbStack_108 == (byte *****)0x0" (cast_expression "(byte *****)ppppbStack_108" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_108")) (== "==") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  pcVar38 = *(code **)(pcVar40 + 0x38158);\n                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;\n                  goto LAB_000794d0;\n                }" ({ "{") (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38158);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38158)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(pcVar40 + 0x38158)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38158)" (( "(") (binary_expression "pcVar40 + 0x38158" (identifier "pcVar40") (+ "+") (number_literal "0x38158")) () ")"))))) (; ";")) (expression_statement "iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;" (assignment_expression "iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0" (identifier "iVar27") (= "=") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3fb0" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x3fb0"))) (; ";")) (goto_statement "goto LAB_000794d0;" (goto "goto") (statement_identifier "LAB_000794d0") (; ";")) (} "}"))) (if_statement "if ((int)pbVar31 < 0x11) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }" (if "if") (parenthesized_expression "((int)pbVar31 < 0x11)" (( "(") (binary_expression "(int)pbVar31 < 0x11" (cast_expression "(int)pbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar31")) (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  goto LAB_000787a4;\n                }" ({ "{") (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" (identifier "iVar27") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38158)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38158)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38158)" (( "(") (binary_expression "pcVar40 + 0x38158" (identifier "pcVar40") (+ "+") (number_literal "0x38158")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" (( "(") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3f7c" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x3f7c")) () ")")))) (; ";")) (goto_statement "goto LAB_000787a4;" (goto "goto") (statement_identifier "LAB_000787a4") (; ";")) (} "}"))) (expression_statement "cVar5 = *(char *)(iVar18 + 0x34);" (assignment_expression "cVar5 = *(char *)(iVar18 + 0x34)" (identifier "cVar5") (= "=") (pointer_expression "*(char *)(iVar18 + 0x34)" (* "*") (cast_expression "(char *)(iVar18 + 0x34)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x34)" (( "(") (binary_expression "iVar18 + 0x34" (identifier "iVar18") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "pbVar28 = (byte *)((int)pppppbVar35 + -0x16);" (assignment_expression "pbVar28 = (byte *)((int)pppppbVar35 + -0x16)" (identifier "pbVar28") (= "=") (cast_expression "(byte *)((int)pppppbVar35 + -0x16)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar35 + -0x16)" (( "(") (binary_expression "(int)pppppbVar35 + -0x16" (cast_expression "(int)pppppbVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar35")) (+ "+") (number_literal "-0x16")) () ")")))) (; ";")) (expression_statement "cVar6 = *(char *)(iVar18 + 0x35);" (assignment_expression "cVar6 = *(char *)(iVar18 + 0x35)" (identifier "cVar6") (= "=") (pointer_expression "*(char *)(iVar18 + 0x35)" (* "*") (cast_expression "(char *)(iVar18 + 0x35)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x35)" (( "(") (binary_expression "iVar18 + 0x35" (identifier "iVar18") (+ "+") (number_literal "0x35")) () ")"))))) (; ";")) (if_statement "if ((int)pbVar28 < 4) {\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }" (if "if") (parenthesized_expression "((int)pbVar28 < 4)" (( "(") (binary_expression "(int)pbVar28 < 4" (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")) (< "<") (number_literal "4")) () ")")) (compound_statement "{\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);\n                  (**(code **)(pcVar40 + 0x38124))(0);\nLAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;\n                }" ({ "{") (expression_statement "ppppbVar12 = (byte ****)x11_identify_auth_proto(0);" (assignment_expression "ppppbVar12 = (byte ****)x11_identify_auth_proto(0)" (identifier "ppppbVar12") (= "=") (cast_expression "(byte ****)x11_identify_auth_proto(0)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "x11_identify_auth_proto(0)" (identifier "x11_identify_auth_proto") (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar40 + 0x38124))(0);" (call_expression "(**(code **)(pcVar40 + 0x38124))(0)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38124)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (labeled_statement "LAB_0007949c:\n                  pppppbVar35 = (byte *****)0xffffffff;" (statement_identifier "LAB_0007949c") (: ":") (expression_statement "pppppbVar35 = (byte *****)0xffffffff;" (assignment_expression "pppppbVar35 = (byte *****)0xffffffff" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)0xffffffff" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0xffffffff"))) (; ";"))) (} "}")) (else_clause "else {\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }" (else "else") (compound_statement "{\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_0007949c;\n                }" ({ "{") (expression_statement "iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);" (assignment_expression "iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0)" (identifier "iVar11") (= "=") (call_expression "FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0)" (identifier "FUN_00076af0") (argument_list "(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0)" (( "(") (binary_expression "iVar18 + 0x36" (identifier "iVar18") (+ "+") (number_literal "0x36")) (, ",") (identifier "pbVar28") (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "pppppbVar35 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar35 = (byte *****)ppppbStack_e8" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)ppppbStack_e8" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_e8"))) (; ";")) (if_statement "if (iVar11 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    pppppbVar35 = (byte *****)0x0;\n                  }" ({ "{") (expression_statement "pppppbVar35 = (byte *****)0x0;" (assignment_expression "pppppbVar35 = (byte *****)0x0" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);" (assignment_expression "ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35)" (identifier "ppppbVar12") (= "=") (cast_expression "(byte ****)x11_identify_auth_proto(pppppbVar35)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "x11_identify_auth_proto(pppppbVar35)" (identifier "x11_identify_auth_proto") (argument_list "(pppppbVar35)" (( "(") (identifier "pppppbVar35") () ")"))))) (; ";")) (expression_statement "(**(code **)(pcVar40 + 0x38124))(pppppbVar35);" (call_expression "(**(code **)(pcVar40 + 0x38124))(pppppbVar35)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38124)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) () ")")) (argument_list "(pppppbVar35)" (( "(") (identifier "pppppbVar35") () ")"))) (; ";")) (expression_statement "iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);" (assignment_expression "iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8)" (identifier "iVar11") (= "=") (call_expression "FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8)" (identifier "FUN_00076af0") (argument_list "(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8)" (( "(") (binary_expression "iVar18 + 0x36" (identifier "iVar18") (+ "+") (number_literal "0x36")) (, ",") (identifier "pbVar28") (, ",") (number_literal "0") (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) () ")")))) (; ";")) (expression_statement "pppppbVar35 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar35 = (byte *****)ppppbStack_e8" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)ppppbStack_e8" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_e8"))) (; ";")) (if_statement "if (iVar11 == 0) goto LAB_0007949c;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007949c;" (goto "goto") (statement_identifier "LAB_0007949c") (; ";"))) (} "}")))) (expression_statement "pbVar28 = (byte *)((int)pppppbVar35 + 0x11);" (assignment_expression "pbVar28 = (byte *)((int)pppppbVar35 + 0x11)" (identifier "pbVar28") (= "=") (cast_expression "(byte *)((int)pppppbVar35 + 0x11)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar35 + 0x11)" (( "(") (binary_expression "(int)pppppbVar35 + 0x11" (cast_expression "(int)pppppbVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar35")) (+ "+") (number_literal "0x11")) () ")")))) (; ";")) (expression_statement "iVar11 = (int)pbVar31 - (int)pbVar28;" (assignment_expression "iVar11 = (int)pbVar31 - (int)pbVar28" (identifier "iVar11") (= "=") (binary_expression "(int)pbVar31 - (int)pbVar28" (cast_expression "(int)pbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar31")) (- "-") (cast_expression "(int)pbVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar28")))) (; ";")) (expression_statement "pppppbVar35 = (byte *****)0x0;" (assignment_expression "pppppbVar35 = (byte *****)0x0" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar11 < 4) {\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }\n                else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }" (if "if") (parenthesized_expression "(iVar11 < 4)" (( "(") (binary_expression "iVar11 < 4" (identifier "iVar11") (< "<") (number_literal "4")) () ")")) (compound_statement "{\nLAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;\n                }" ({ "{") (labeled_statement "LAB_00078ff4:\n                  pppppbVar33 = (byte *****)0xffffffff;" (statement_identifier "LAB_00078ff4") (: ":") (expression_statement "pppppbVar33 = (byte *****)0xffffffff;" (assignment_expression "pppppbVar33 = (byte *****)0xffffffff" (identifier "pppppbVar33") (= "=") (cast_expression "(byte *****)0xffffffff" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0xffffffff"))) (; ";"))) (} "}")) (else_clause "else {\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }" (else "else") (compound_statement "{\n                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);\n                  pppppbVar35 = (byte *****)ppppbStack_e8;\n                  if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }\n                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);\n                  pppppbVar33 = (byte *****)ppppbStack_e8;\n                  if (iVar11 == 0) goto LAB_00078ff4;\n                }" ({ "{") (expression_statement "iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);" (assignment_expression "iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" (identifier "iVar13") (= "=") (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" (identifier "FUN_00076af0") (argument_list "(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0)" (( "(") (binary_expression "pbVar28 + iVar27" (identifier "pbVar28") (+ "+") (identifier "iVar27")) (, ",") (identifier "iVar11") (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "pppppbVar35 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar35 = (byte *****)ppppbStack_e8" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)ppppbStack_e8" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_e8"))) (; ";")) (if_statement "if (iVar13 == 0) {\n                    pppppbVar35 = (byte *****)0x0;\n                  }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    pppppbVar35 = (byte *****)0x0;\n                  }" ({ "{") (expression_statement "pppppbVar35 = (byte *****)0x0;" (assignment_expression "pppppbVar35 = (byte *****)0x0" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);" (assignment_expression "iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" (identifier "iVar11") (= "=") (call_expression "FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" (identifier "FUN_00076af0") (argument_list "(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8)" (( "(") (binary_expression "pbVar28 + iVar27" (identifier "pbVar28") (+ "+") (identifier "iVar27")) (, ",") (identifier "iVar11") (, ",") (number_literal "0") (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) () ")")))) (; ";")) (expression_statement "pppppbVar33 = (byte *****)ppppbStack_e8;" (assignment_expression "pppppbVar33 = (byte *****)ppppbStack_e8" (identifier "pppppbVar33") (= "=") (cast_expression "(byte *****)ppppbStack_e8" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_e8"))) (; ";")) (if_statement "if (iVar11 == 0) goto LAB_00078ff4;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00078ff4;" (goto "goto") (statement_identifier "LAB_00078ff4") (; ";"))) (} "}")))) (if_statement "if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }" (if "if") (parenthesized_expression "((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3))" (( "(") (binary_expression "(int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)" (cast_expression "(int)pbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar31")) (<= "<=") (cast_expression "(int)(pbVar28 + (int)pppppbVar33 + 3)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar28 + (int)pppppbVar33 + 3)" (( "(") (binary_expression "pbVar28 + (int)pppppbVar33 + 3" (binary_expression "pbVar28 + (int)pppppbVar33" (identifier "pbVar28") (+ "+") (cast_expression "(int)pppppbVar33" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar33"))) (+ "+") (number_literal "3")) () ")")))) () ")")) (compound_statement "{\n                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);\n                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);\n                  goto LAB_000787a4;\n                }" ({ "{") (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" (identifier "iVar27") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38158)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38158)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38158)" (( "(") (binary_expression "pcVar40 + 0x38158" (identifier "pcVar40") (+ "+") (number_literal "0x38158")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x3f7c)" (( "(") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3f7c" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x3f7c")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar40 + 0x38124))(pppppbVar35);" (call_expression "(**(code **)(pcVar40 + 0x38124))(pppppbVar35)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38124)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) () ")")) (argument_list "(pppppbVar35)" (( "(") (identifier "pppppbVar35") () ")"))) (; ";")) (goto_statement "goto LAB_000787a4;" (goto "goto") (statement_identifier "LAB_000787a4") (; ";")) (} "}"))) (expression_statement "pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;" (assignment_expression "pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27" (identifier "pbVar31") (= "=") (binary_expression "pbVar28 + (int)pppppbVar33 + iVar27" (binary_expression "pbVar28 + (int)pppppbVar33" (identifier "pbVar28") (+ "+") (cast_expression "(int)pppppbVar33" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar33"))) (+ "+") (identifier "iVar27"))) (; ";")) (if_statement "if (-1 < (int)ppppbVar12) {\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }" (if "if") (parenthesized_expression "(-1 < (int)ppppbVar12)" (( "(") (binary_expression "-1 < (int)ppppbVar12" (number_literal "-1") (< "<") (cast_expression "(int)ppppbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar12"))) () ")")) (compound_statement "{\n                  bVar21 = *pbVar31;\n                  bVar10 = cVar6 != '\0';\n                  bVar1 = pbVar31[1];\n                  bVar2 = pbVar31[3];\n                  bVar3 = pbVar31[2];\n                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;\n                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);\n                  pcVar38 = *(code **)(pcVar40 + 0x38124);\n                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;\n                  (*pcVar38)(pppppbVar35);\n                  ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);\n                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;\n                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;\n                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);\n                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);\n                  puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);\n                  puVar15[4] = 0;\n                  puVar15[5] = 0;\n                  uVar23 = *(uint *)(iVar22 + 0x429c);\n                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);\n                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);\n                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);\n                  puVar15[3] = (char)uVar41;\n                  *puVar15 = (char)((uint)uVar41 >> 0x18);\n                  puVar15[1] = (char)((uint)uVar41 >> 0x10);\n                  puVar15[2] = (char)((uint)uVar41 >> 8);\n                  puVar15[7] = 7;\n                  puVar15[6] = 0;\n                  puVar24 = puVar15 + 8;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;\n                  puVar24 = puVar15 + 0xb;\n                  uVar30 = (uint)puVar24 & 3;\n                  *(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;\n                  puVar15[0xc] = uVar7;\n                  puVar15[0xd] = uVar8;\n                  puVar15[0xe] = uVar9;\n                  puVar15[0x10] = bVar10;\n                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);\n                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);\n                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);\n                  puVar15[0x14] = (char)pppppbVar32;\n                  pcVar38 = *(code **)(pcVar40 + 0x38c14);\n                  puVar15[0xf] = cVar5 != '\0';\n                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);\n                  puVar24 = puVar15 + (int)pppppbVar32;\n                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);\n                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);\n                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);\n                  puVar24[0x18] = (char)pppppbVar35;\n                  (**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);\n                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);\n                  puVar24[0x1c] = bVar2;\n                  puVar24[0x19] = bVar21;\n                  puVar24[0x1a] = bVar1;\n                  puVar24[0x1b] = bVar3;\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);\n                  (**(code **)(pcVar40 + 0x38124))(puVar15);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                  goto LAB_000784dc;\n                }" ({ "{") (expression_statement "bVar21 = *pbVar31;" (assignment_expression "bVar21 = *pbVar31" (identifier "bVar21") (= "=") (pointer_expression "*pbVar31" (* "*") (identifier "pbVar31"))) (; ";")) (expression_statement "bVar10 = cVar6 != '\0';" (assignment_expression "bVar10 = cVar6 != '\0'" (identifier "bVar10") (= "=") (binary_expression "cVar6 != '\0'" (identifier "cVar6") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (expression_statement "bVar1 = pbVar31[1];" (assignment_expression "bVar1 = pbVar31[1]" (identifier "bVar1") (= "=") (subscript_expression "pbVar31[1]" (identifier "pbVar31") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "bVar2 = pbVar31[3];" (assignment_expression "bVar2 = pbVar31[3]" (identifier "bVar2") (= "=") (subscript_expression "pbVar31[3]" (identifier "pbVar31") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "bVar3 = pbVar31[2];" (assignment_expression "bVar3 = pbVar31[2]" (identifier "bVar3") (= "=") (subscript_expression "pbVar31[2]" (identifier "pbVar31") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "((byte *****)ppppbStack_108)[6] = ppppbVar12;" (assignment_expression "((byte *****)ppppbStack_108)[6] = ppppbVar12" (subscript_expression "((byte *****)ppppbStack_108)[6]" (parenthesized_expression "((byte *****)ppppbStack_108)" (( "(") (cast_expression "(byte *****)ppppbStack_108" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_108")) () ")")) ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "ppppbVar12")) (; ";")) (expression_statement "ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);" (assignment_expression "ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8)" (identifier "ppppbVar14") (= "=") (cast_expression "(byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8)" (identifier "x11_dehexify") (argument_list "(pppppbVar35,(byte *****)ppppbStack_108 + 8)" (( "(") (identifier "pppppbVar35") (, ",") (binary_expression "(byte *****)ppppbStack_108 + 8" (cast_expression "(byte *****)ppppbStack_108" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_108")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38124);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38124)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) (; ";")) (expression_statement "((byte *****)ppppbStack_108)[7] = ppppbVar14;" (assignment_expression "((byte *****)ppppbStack_108)[7] = ppppbVar14" (subscript_expression "((byte *****)ppppbStack_108)[7]" (parenthesized_expression "((byte *****)ppppbStack_108)" (( "(") (cast_expression "(byte *****)ppppbStack_108" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_108")) () ")")) ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "ppppbVar14")) (; ";")) (expression_statement "(*pcVar38)(pppppbVar35);" (call_expression "(*pcVar38)(pppppbVar35)" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "(pppppbVar35)" (( "(") (identifier "pppppbVar35") () ")"))) (; ";")) (expression_statement "ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108);" (assignment_expression "ppppbVar12 = (byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108)" (identifier "ppppbVar12") (= "=") (cast_expression "(byte ****)\n                               (**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(**(code **)(pcVar40 + 0x38920))\n                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38920))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38920)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38920)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38920)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38920)" (( "(") (binary_expression "pcVar40 + 0x38920" (identifier "pcVar40") (+ "+") (number_literal "0x38920")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,\n                                          iVar18,ppppbStack_108)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "ppppbVar12") (, ",") (identifier "iVar18") (, ",") (identifier "ppppbStack_108") () ")"))))) (; ";")) (expression_statement "((byte *****)ppppbStack_108)[5] = ppppbVar12;" (assignment_expression "((byte *****)ppppbStack_108)[5] = ppppbVar12" (subscript_expression "((byte *****)ppppbStack_108)[5]" (parenthesized_expression "((byte *****)ppppbStack_108)" (( "(") (cast_expression "(byte *****)ppppbStack_108" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_108")) () ")")) ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "ppppbVar12")) (; ";")) (expression_statement "((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;" (assignment_expression "((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10" (subscript_expression "((byte *****)ppppbStack_108)[9]" (parenthesized_expression "((byte *****)ppppbStack_108)" (( "(") (cast_expression "(byte *****)ppppbStack_108" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_108")) () ")")) ([ "[") (number_literal "9") (] "]")) (= "=") (cast_expression "(byte ****)(uint)bVar10" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (cast_expression "(uint)bVar10" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar10")))) (; ";")) (expression_statement "pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);" (assignment_expression "pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3])" (identifier "pppppbVar32") (= "=") (cast_expression "(byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3])" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (call_expression "(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3])" (parenthesized_expression "(**(code **)(pcVar40 + 0x38b58))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38b58)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38b58)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38b58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38b58)" (( "(") (binary_expression "pcVar40 + 0x38b58" (identifier "pcVar40") (+ "+") (number_literal "0x38b58")) () ")"))))) () ")")) (argument_list "(ppppbVar12[3])" (( "(") (subscript_expression "ppppbVar12[3]" (identifier "ppppbVar12") ([ "[") (number_literal "3") (] "]")) () ")"))))) (; ";")) (expression_statement "pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);" (assignment_expression "pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4])" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4])" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (call_expression "(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4])" (parenthesized_expression "(**(code **)(pcVar40 + 0x38b58))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38b58)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38b58)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38b58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38b58)" (( "(") (binary_expression "pcVar40 + 0x38b58" (identifier "pcVar40") (+ "+") (number_literal "0x38b58")) () ")"))))) () ")")) (argument_list "(ppppbVar12[4])" (( "(") (subscript_expression "ppppbVar12[4]" (identifier "ppppbVar12") ([ "[") (number_literal "4") (] "]")) () ")"))))) (; ";")) (expression_statement "puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);" (assignment_expression "puVar15 = (undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1)" (identifier "puVar15") (= "=") (cast_expression "(undefined1 *)\n                            (**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar40 + 0x3815c))\n                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1)" (parenthesized_expression "(**(code **)(pcVar40 + 0x3815c))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x3815c)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x3815c)" (* "*") (cast_expression "(code **)(pcVar40 + 0x3815c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x3815c)" (( "(") (binary_expression "pcVar40 + 0x3815c" (identifier "pcVar40") (+ "+") (number_literal "0x3815c")) () ")"))))) () ")")) (argument_list "((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1)" (( "(") (binary_expression "(byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35" (cast_expression "(byte *)((int)pppppbVar32 + 0x1d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar32 + 0x1d)" (( "(") (binary_expression "(int)pppppbVar32 + 0x1d" (cast_expression "(int)pppppbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar32")) (+ "+") (number_literal "0x1d")) () ")"))) (+ "+") (cast_expression "(int)pppppbVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar35"))) (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "puVar15[4] = 0;" (assignment_expression "puVar15[4] = 0" (subscript_expression "puVar15[4]" (identifier "puVar15") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15[5] = 0;" (assignment_expression "puVar15[5] = 0" (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar23 = *(uint *)(iVar22 + 0x429c);" (assignment_expression "uVar23 = *(uint *)(iVar22 + 0x429c)" (identifier "uVar23") (= "=") (pointer_expression "*(uint *)(iVar22 + 0x429c)" (* "*") (cast_expression "(uint *)(iVar22 + 0x429c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x429c)" (( "(") (binary_expression "iVar22 + 0x429c" (identifier "iVar22") (+ "+") (number_literal "0x429c")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(undefined1 *)(iVar22 + 0x42a0);" (assignment_expression "uVar7 = *(undefined1 *)(iVar22 + 0x42a0)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined1 *)(iVar22 + 0x42a0)" (* "*") (cast_expression "(undefined1 *)(iVar22 + 0x42a0)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x42a0)" (( "(") (binary_expression "iVar22 + 0x42a0" (identifier "iVar22") (+ "+") (number_literal "0x42a0")) () ")"))))) (; ";")) (expression_statement "uVar8 = *(undefined1 *)(iVar22 + 0x42a1);" (assignment_expression "uVar8 = *(undefined1 *)(iVar22 + 0x42a1)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined1 *)(iVar22 + 0x42a1)" (* "*") (cast_expression "(undefined1 *)(iVar22 + 0x42a1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x42a1)" (( "(") (binary_expression "iVar22 + 0x42a1" (identifier "iVar22") (+ "+") (number_literal "0x42a1")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(undefined1 *)(iVar22 + 0x42a2);" (assignment_expression "uVar9 = *(undefined1 *)(iVar22 + 0x42a2)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined1 *)(iVar22 + 0x42a2)" (* "*") (cast_expression "(undefined1 *)(iVar22 + 0x42a2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar22 + 0x42a2)" (( "(") (binary_expression "iVar22 + 0x42a2" (identifier "iVar22") (+ "+") (number_literal "0x42a2")) () ")"))))) (; ";")) (expression_statement "puVar15[3] = (char)uVar41;" (assignment_expression "puVar15[3] = (char)uVar41" (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(char)uVar41" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar41"))) (; ";")) (expression_statement "*puVar15 = (char)((uint)uVar41 >> 0x18);" (assignment_expression "*puVar15 = (char)((uint)uVar41 >> 0x18)" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (cast_expression "(char)((uint)uVar41 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar41 >> 0x18)" (( "(") (binary_expression "(uint)uVar41 >> 0x18" (cast_expression "(uint)uVar41" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar41")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar15[1] = (char)((uint)uVar41 >> 0x10);" (assignment_expression "puVar15[1] = (char)((uint)uVar41 >> 0x10)" (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar41 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar41 >> 0x10)" (( "(") (binary_expression "(uint)uVar41 >> 0x10" (cast_expression "(uint)uVar41" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar41")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "puVar15[2] = (char)((uint)uVar41 >> 8);" (assignment_expression "puVar15[2] = (char)((uint)uVar41 >> 8)" (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)((uint)uVar41 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar41 >> 8)" (( "(") (binary_expression "(uint)uVar41 >> 8" (cast_expression "(uint)uVar41" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar41")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "puVar15[7] = 7;" (assignment_expression "puVar15[7] = 7" (subscript_expression "puVar15[7]" (identifier "puVar15") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "7")) (; ";")) (expression_statement "puVar15[6] = 0;" (assignment_expression "puVar15[6] = 0" (subscript_expression "puVar15[6]" (identifier "puVar15") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar24 = puVar15 + 8;" (assignment_expression "puVar24 = puVar15 + 8" (identifier "puVar24") (= "=") (binary_expression "puVar15 + 8" (identifier "puVar15") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "uVar30 = (uint)puVar24 & 3;" (assignment_expression "uVar30 = (uint)puVar24 & 3" (identifier "uVar30") (= "=") (binary_expression "(uint)puVar24 & 3" (cast_expression "(uint)puVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar24")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "*(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;" (assignment_expression "*(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8" (pointer_expression "*(uint *)(puVar24 + -uVar30)" (* "*") (cast_expression "(uint *)(puVar24 + -uVar30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + -uVar30)" (( "(") (binary_expression "puVar24 + -uVar30" (identifier "puVar24") (+ "+") (unary_expression "-uVar30" (- "-") (identifier "uVar30"))) () ")")))) (= "=") (binary_expression "*(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8" (binary_expression "*(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8" (pointer_expression "*(uint *)(puVar24 + -uVar30)" (* "*") (cast_expression "(uint *)(puVar24 + -uVar30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + -uVar30)" (( "(") (binary_expression "puVar24 + -uVar30" (identifier "puVar24") (+ "+") (unary_expression "-uVar30" (- "-") (identifier "uVar30"))) () ")")))) (& "&") (binary_expression "-1 << (4 - uVar30) * 8" (number_literal "-1") (<< "<<") (binary_expression "(4 - uVar30) * 8" (parenthesized_expression "(4 - uVar30)" (( "(") (binary_expression "4 - uVar30" (number_literal "4") (- "-") (identifier "uVar30")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "uVar23 >> uVar30 * 8" (identifier "uVar23") (>> ">>") (binary_expression "uVar30 * 8" (identifier "uVar30") (* "*") (number_literal "8"))))) (; ";")) (expression_statement "puVar24 = puVar15 + 0xb;" (assignment_expression "puVar24 = puVar15 + 0xb" (identifier "puVar24") (= "=") (binary_expression "puVar15 + 0xb" (identifier "puVar15") (+ "+") (number_literal "0xb"))) (; ";")) (expression_statement "uVar30 = (uint)puVar24 & 3;" (assignment_expression "uVar30 = (uint)puVar24 & 3" (identifier "uVar30") (= "=") (binary_expression "(uint)puVar24 & 3" (cast_expression "(uint)puVar24" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "puVar24")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "*(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8;" (assignment_expression "*(uint *)(puVar24 + -uVar30) =\n                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8" (pointer_expression "*(uint *)(puVar24 + -uVar30)" (* "*") (cast_expression "(uint *)(puVar24 + -uVar30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + -uVar30)" (( "(") (binary_expression "puVar24 + -uVar30" (identifier "puVar24") (+ "+") (unary_expression "-uVar30" (- "-") (identifier "uVar30"))) () ")")))) (= "=") (binary_expression "*(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |\n                       uVar23 << (3 - uVar30) * 8" (binary_expression "*(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8" (pointer_expression "*(uint *)(puVar24 + -uVar30)" (* "*") (cast_expression "(uint *)(puVar24 + -uVar30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + -uVar30)" (( "(") (binary_expression "puVar24 + -uVar30" (identifier "puVar24") (+ "+") (unary_expression "-uVar30" (- "-") (identifier "uVar30"))) () ")")))) (& "&") (binary_expression "0xffffffffU >> (uVar30 + 1) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(uVar30 + 1) * 8" (parenthesized_expression "(uVar30 + 1)" (( "(") (binary_expression "uVar30 + 1" (identifier "uVar30") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "uVar23 << (3 - uVar30) * 8" (identifier "uVar23") (<< "<<") (binary_expression "(3 - uVar30) * 8" (parenthesized_expression "(3 - uVar30)" (( "(") (binary_expression "3 - uVar30" (number_literal "3") (- "-") (identifier "uVar30")) () ")")) (* "*") (number_literal "8"))))) (; ";")) (expression_statement "puVar15[0xc] = uVar7;" (assignment_expression "puVar15[0xc] = uVar7" (subscript_expression "puVar15[0xc]" (identifier "puVar15") ([ "[") (number_literal "0xc") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (expression_statement "puVar15[0xd] = uVar8;" (assignment_expression "puVar15[0xd] = uVar8" (subscript_expression "puVar15[0xd]" (identifier "puVar15") ([ "[") (number_literal "0xd") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar15[0xe] = uVar9;" (assignment_expression "puVar15[0xe] = uVar9" (subscript_expression "puVar15[0xe]" (identifier "puVar15") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar15[0x10] = bVar10;" (assignment_expression "puVar15[0x10] = bVar10" (subscript_expression "puVar15[0x10]" (identifier "puVar15") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "bVar10")) (; ";")) (expression_statement "puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);" (assignment_expression "puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18)" (subscript_expression "puVar15[0x11]" (identifier "puVar15") ([ "[") (number_literal "0x11") (] "]")) (= "=") (cast_expression "(char)((uint)pppppbVar32 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)pppppbVar32 >> 0x18)" (( "(") (binary_expression "(uint)pppppbVar32 >> 0x18" (cast_expression "(uint)pppppbVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppbVar32")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);" (assignment_expression "puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10)" (subscript_expression "puVar15[0x12]" (identifier "puVar15") ([ "[") (number_literal "0x12") (] "]")) (= "=") (cast_expression "(char)((uint)pppppbVar32 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)pppppbVar32 >> 0x10)" (( "(") (binary_expression "(uint)pppppbVar32 >> 0x10" (cast_expression "(uint)pppppbVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppbVar32")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);" (assignment_expression "puVar15[0x13] = (char)((uint)pppppbVar32 >> 8)" (subscript_expression "puVar15[0x13]" (identifier "puVar15") ([ "[") (number_literal "0x13") (] "]")) (= "=") (cast_expression "(char)((uint)pppppbVar32 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)pppppbVar32 >> 8)" (( "(") (binary_expression "(uint)pppppbVar32 >> 8" (cast_expression "(uint)pppppbVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppbVar32")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "puVar15[0x14] = (char)pppppbVar32;" (assignment_expression "puVar15[0x14] = (char)pppppbVar32" (subscript_expression "puVar15[0x14]" (identifier "puVar15") ([ "[") (number_literal "0x14") (] "]")) (= "=") (cast_expression "(char)pppppbVar32" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pppppbVar32"))) (; ";")) (expression_statement "pcVar38 = *(code **)(pcVar40 + 0x38c14);" (assignment_expression "pcVar38 = *(code **)(pcVar40 + 0x38c14)" (identifier "pcVar38") (= "=") (pointer_expression "*(code **)(pcVar40 + 0x38c14)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38c14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38c14)" (( "(") (binary_expression "pcVar40 + 0x38c14" (identifier "pcVar40") (+ "+") (number_literal "0x38c14")) () ")"))))) (; ";")) (expression_statement "puVar15[0xf] = cVar5 != '\0';" (assignment_expression "puVar15[0xf] = cVar5 != '\0'" (subscript_expression "puVar15[0xf]" (identifier "puVar15") ([ "[") (number_literal "0xf") (] "]")) (= "=") (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (expression_statement "(*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);" (call_expression "(*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32)" (parenthesized_expression "(*pcVar38)" (( "(") (pointer_expression "*pcVar38" (* "*") (identifier "pcVar38")) () ")")) (argument_list "(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32)" (( "(") (binary_expression "puVar15 + 0x15" (identifier "puVar15") (+ "+") (number_literal "0x15")) (, ",") (subscript_expression "((byte *****)ppppbStack_108)[5][3]" (subscript_expression "((byte *****)ppppbStack_108)[5]" (parenthesized_expression "((byte *****)ppppbStack_108)" (( "(") (cast_expression "(byte *****)ppppbStack_108" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_108")) () ")")) ([ "[") (number_literal "5") (] "]")) ([ "[") (number_literal "3") (] "]")) (, ",") (identifier "pppppbVar32") () ")"))) (; ";")) (expression_statement "puVar24 = puVar15 + (int)pppppbVar32;" (assignment_expression "puVar24 = puVar15 + (int)pppppbVar32" (identifier "puVar24") (= "=") (binary_expression "puVar15 + (int)pppppbVar32" (identifier "puVar15") (+ "+") (cast_expression "(int)pppppbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar32")))) (; ";")) (expression_statement "puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);" (assignment_expression "puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18)" (subscript_expression "puVar24[0x15]" (identifier "puVar24") ([ "[") (number_literal "0x15") (] "]")) (= "=") (cast_expression "(char)((uint)pppppbVar35 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)pppppbVar35 >> 0x18)" (( "(") (binary_expression "(uint)pppppbVar35 >> 0x18" (cast_expression "(uint)pppppbVar35" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppbVar35")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);" (assignment_expression "puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10)" (subscript_expression "puVar24[0x16]" (identifier "puVar24") ([ "[") (number_literal "0x16") (] "]")) (= "=") (cast_expression "(char)((uint)pppppbVar35 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)pppppbVar35 >> 0x10)" (( "(") (binary_expression "(uint)pppppbVar35 >> 0x10" (cast_expression "(uint)pppppbVar35" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppbVar35")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);" (assignment_expression "puVar24[0x17] = (char)((uint)pppppbVar35 >> 8)" (subscript_expression "puVar24[0x17]" (identifier "puVar24") ([ "[") (number_literal "0x17") (] "]")) (= "=") (cast_expression "(char)((uint)pppppbVar35 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)pppppbVar35 >> 8)" (( "(") (binary_expression "(uint)pppppbVar35 >> 8" (cast_expression "(uint)pppppbVar35" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppbVar35")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "puVar24[0x18] = (char)pppppbVar35;" (assignment_expression "puVar24[0x18] = (char)pppppbVar35" (subscript_expression "puVar24[0x18]" (identifier "puVar24") ([ "[") (number_literal "0x18") (] "]")) (= "=") (cast_expression "(char)pppppbVar35" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "pppppbVar35"))) (; ";")) (expression_statement "(**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);" (call_expression "(**(code **)(pcVar40 + 0x38c14))\n                            (puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38c14))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38c14)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38c14)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38c14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38c14)" (( "(") (binary_expression "pcVar40 + 0x38c14" (identifier "pcVar40") (+ "+") (number_literal "0x38c14")) () ")"))))) () ")")) (argument_list "(puVar15 + (int)((int)pppppbVar32 + 0x19),\n                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35)" (( "(") (binary_expression "puVar15 + (int)((int)pppppbVar32 + 0x19)" (identifier "puVar15") (+ "+") (cast_expression "(int)((int)pppppbVar32 + 0x19)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)pppppbVar32 + 0x19)" (( "(") (binary_expression "(int)pppppbVar32 + 0x19" (cast_expression "(int)pppppbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar32")) (+ "+") (number_literal "0x19")) () ")")))) (, ",") (subscript_expression "((byte *****)ppppbStack_108)[5][4]" (subscript_expression "((byte *****)ppppbStack_108)[5]" (parenthesized_expression "((byte *****)ppppbStack_108)" (( "(") (cast_expression "(byte *****)ppppbStack_108" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (identifier "ppppbStack_108")) () ")")) ([ "[") (number_literal "5") (] "]")) ([ "[") (number_literal "4") (] "]")) (, ",") (identifier "pppppbVar35") () ")"))) (; ";")) (expression_statement "puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);" (assignment_expression "puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35)" (identifier "puVar24") (= "=") (binary_expression "puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35)" (identifier "puVar15") (+ "+") (cast_expression "(int)((int)pppppbVar32 + (int)pppppbVar35)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((int)pppppbVar32 + (int)pppppbVar35)" (( "(") (binary_expression "(int)pppppbVar32 + (int)pppppbVar35" (cast_expression "(int)pppppbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar32")) (+ "+") (cast_expression "(int)pppppbVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar35"))) () ")"))))) (; ";")) (expression_statement "puVar24[0x1c] = bVar2;" (assignment_expression "puVar24[0x1c] = bVar2" (subscript_expression "puVar24[0x1c]" (identifier "puVar24") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (identifier "bVar2")) (; ";")) (expression_statement "puVar24[0x19] = bVar21;" (assignment_expression "puVar24[0x19] = bVar21" (subscript_expression "puVar24[0x19]" (identifier "puVar24") ([ "[") (number_literal "0x19") (] "]")) (= "=") (identifier "bVar21")) (; ";")) (expression_statement "puVar24[0x1a] = bVar1;" (assignment_expression "puVar24[0x1a] = bVar1" (subscript_expression "puVar24[0x1a]" (identifier "puVar24") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (identifier "bVar1")) (; ";")) (expression_statement "puVar24[0x1b] = bVar3;" (assignment_expression "puVar24[0x1b] = bVar3" (subscript_expression "puVar24[0x1b]" (identifier "puVar24") ([ "[") (number_literal "0x1b") (] "]")) (= "=") (identifier "bVar3")) (; ";")) (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x388fc)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x388fc)" (* "*") (cast_expression "(code **)(pcVar40 + 0x388fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x388fc)" (( "(") (binary_expression "pcVar40 + 0x388fc" (identifier "pcVar40") (+ "+") (number_literal "0x388fc")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,\n                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar18 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 4)" (( "(") (binary_expression "iVar18 + 4" (identifier "iVar18") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0x62") (, ",") (identifier "puVar15") (, ",") (binary_expression "(byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35" (cast_expression "(byte *)((int)pppppbVar32 + 0x1d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar32 + 0x1d)" (( "(") (binary_expression "(int)pppppbVar32 + 0x1d" (cast_expression "(int)pppppbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar32")) (+ "+") (number_literal "0x1d")) () ")"))) (+ "+") (cast_expression "(int)pppppbVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar35"))) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar40 + 0x38124))(puVar15);" (call_expression "(**(code **)(pcVar40 + 0x38124))(puVar15)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38124)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) () ")")) (argument_list "(puVar15)" (( "(") (identifier "puVar15") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000784dc;" (goto "goto") (statement_identifier "LAB_000784dc") (; ";")) (} "}"))) (goto_statement "goto LAB_00078f28;" (goto "goto") (statement_identifier "LAB_00078f28") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00078df8:\n            (**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);" (statement_identifier "LAB_00078df8") (: ":") (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x388fc)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x388fc)" (* "*") (cast_expression "(code **)(pcVar40 + 0x388fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x388fc)" (( "(") (binary_expression "pcVar40 + 0x388fc" (identifier "pcVar40") (+ "+") (number_literal "0x388fc")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                       bVar21,iVar27,pbVar31,0)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar18 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 4)" (( "(") (binary_expression "iVar18 + 4" (identifier "iVar18") (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "bVar21") (, ",") (identifier "iVar27") (, ",") (identifier "pbVar31") (, ",") (number_literal "0") () ")"))) (; ";"))) (if_statement "if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }" (if "if") (parenthesized_expression "((bVar21 == 0x61) && (3 < (int)pbVar31))" (( "(") (binary_expression "(bVar21 == 0x61) && (3 < (int)pbVar31)" (parenthesized_expression "(bVar21 == 0x61)" (( "(") (binary_expression "bVar21 == 0x61" (identifier "bVar21") (== "==") (number_literal "0x61")) () ")")) (&& "&&") (parenthesized_expression "(3 < (int)pbVar31)" (( "(") (binary_expression "3 < (int)pbVar31" (number_literal "3") (< "<") (cast_expression "(int)pbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar31"))) () ")"))) () ")")) (compound_statement "{\n              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);\n              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);\n              if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n            }" ({ "{") (expression_statement "uStack_e0 = *(undefined4 *)(iVar18 + 0x25);" (assignment_expression "uStack_e0 = *(undefined4 *)(iVar18 + 0x25)" (identifier "uStack_e0") (= "=") (pointer_expression "*(undefined4 *)(iVar18 + 0x25)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x25)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x25)" (( "(") (binary_expression "iVar18 + 0x25" (identifier "iVar18") (+ "+") (number_literal "0x25")) () ")"))))) (; ";")) (expression_statement "iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);" (assignment_expression "iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" (identifier "iVar27") (= "=") (call_expression "find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" (identifier "find234") (argument_list "(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar18 + 0x403c)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x403c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x403c)" (( "(") (binary_expression "iVar18 + 0x403c" (identifier "iVar18") (+ "+") (number_literal "0x403c")) () ")")))) (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar27 != 0) {\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }" (if "if") (parenthesized_expression "(iVar27 != 0)" (( "(") (binary_expression "iVar27 != 0" (identifier "iVar27") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }" ({ "{") (if_statement "if (*(int *)(iVar27 + 0x10) == 2) {\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" (if "if") (parenthesized_expression "(*(int *)(iVar27 + 0x10) == 2)" (( "(") (binary_expression "*(int *)(iVar27 + 0x10) == 2" (pointer_expression "*(int *)(iVar27 + 0x10)" (* "*") (cast_expression "(int *)(iVar27 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar27 + 0x10)" (( "(") (binary_expression "iVar27 + 0x10" (identifier "iVar27") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                  (**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));\n                  FUN_00076738(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" ({ "{") (expression_statement "(**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4));" (call_expression "(**(code **)(pcVar40 + 0x38900))\n                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4))" (parenthesized_expression "(**(code **)(pcVar40 + 0x38900))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38900)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38900)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38900)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38900)" (( "(") (binary_expression "pcVar40 + 0x38900" (identifier "pcVar40") (+ "+") (number_literal "0x38900")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),\n                             *(undefined4 *)(iVar27 + 4))" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar27 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar27 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar27 + 4)" (( "(") (binary_expression "iVar27 + 4" (identifier "iVar27") (+ "+") (number_literal "4")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_00076738(iVar18,iVar27);" (call_expression "FUN_00076738(iVar18,iVar27)" (identifier "FUN_00076738") (argument_list "(iVar18,iVar27)" (( "(") (identifier "iVar18") (, ",") (identifier "iVar27") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" (else "else") (compound_statement "{\n                  *(undefined4 *)(iVar27 + 0x10) = 1;\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" ({ "{") (expression_statement "*(undefined4 *)(iVar27 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar27 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar27 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar27 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar27 + 0x10)" (( "(") (binary_expression "iVar27 + 0x10" (identifier "iVar27") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (goto_statement "goto LAB_000784dc;" (goto "goto") (statement_identifier "LAB_000784dc") (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }" (else "else") (compound_statement "{\n            if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }\n            if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }\n            if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }\n            uVar30 = iVar18 + 0x25U & 3;\n            uVar41 = *(undefined4 *)(iVar18 + 0x29);\n            uVar23 = iVar18 + 0x28U & 3;\n            pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);\n            ppppbStack_e8 = (byte ****)pppppbVar32;\n            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);\n            if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }\n            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;\n            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);\n            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);\n            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);\n            uVar30 = iVar18 + 0x31U & 3;\n            uVar23 = iVar18 + 0x34U & 3;\n            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);\n            if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }\n            if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }\n          }" ({ "{") (if_statement "if (bVar21 == 0x5c) {\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }" (if "if") (parenthesized_expression "(bVar21 == 0x5c)" (( "(") (binary_expression "bVar21 == 0x5c" (identifier "bVar21") (== "==") (number_literal "0x5c")) () ")")) (compound_statement "{\n              if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);\n              goto LAB_000787a4;\n            }" ({ "{") (if_statement "if (3 < (int)pbVar31) {\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }" (if "if") (parenthesized_expression "(3 < (int)pbVar31)" (( "(") (binary_expression "3 < (int)pbVar31" (number_literal "3") (< "<") (cast_expression "(int)pbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar31"))) () ")")) (compound_statement "{\n                pppppbVar32 = *(byte ******)(iVar18 + 0x25);\n                pppppbVar35 = &ppppbStack_e8;\n                ppppbStack_e8 = (byte ****)pppppbVar32;\n                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);\n                if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                goto LAB_000784dc;\n              }" ({ "{") (expression_statement "pppppbVar32 = *(byte ******)(iVar18 + 0x25);" (assignment_expression "pppppbVar32 = *(byte ******)(iVar18 + 0x25)" (identifier "pppppbVar32") (= "=") (pointer_expression "*(byte ******)(iVar18 + 0x25)" (* "*") (cast_expression "(byte ******)(iVar18 + 0x25)" (( "(") (type_descriptor "byte ******" (type_identifier "byte") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))))) () ")") (parenthesized_expression "(iVar18 + 0x25)" (( "(") (binary_expression "iVar18 + 0x25" (identifier "iVar18") (+ "+") (number_literal "0x25")) () ")"))))) (; ";")) (expression_statement "pppppbVar35 = &ppppbStack_e8;" (assignment_expression "pppppbVar35 = &ppppbStack_e8" (identifier "pppppbVar35") (= "=") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8"))) (; ";")) (expression_statement "ppppbStack_e8 = (byte ****)pppppbVar32;" (assignment_expression "ppppbStack_e8 = (byte ****)pppppbVar32" (identifier "ppppbStack_e8") (= "=") (cast_expression "(byte ****)pppppbVar32" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "pppppbVar32"))) (; ";")) (expression_statement "iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);" (assignment_expression "iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0)" (identifier "iVar22") (= "=") (call_expression "find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0)" (identifier "find234") (argument_list "(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar18 + 0x4034)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4034)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4034)" (( "(") (binary_expression "iVar18 + 0x4034" (identifier "iVar18") (+ "+") (number_literal "0x4034")) () ")")))) (, ",") (identifier "pppppbVar35") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar22 == 0) {\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }\n                else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" (if "if") (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  ppppbStack_e4 = (byte ****)pppppbVar32;\n                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);\n                  if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }\n                  share_xchannel_failure(iVar18,iVar27);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" ({ "{") (expression_statement "ppppbStack_e4 = (byte ****)pppppbVar32;" (assignment_expression "ppppbStack_e4 = (byte ****)pppppbVar32" (identifier "ppppbStack_e4") (= "=") (cast_expression "(byte ****)pppppbVar32" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "pppppbVar32"))) (; ";")) (expression_statement "iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);" (assignment_expression "iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0)" (identifier "iVar27") (= "=") (call_expression "find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0)" (identifier "find234") (argument_list "(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar18 + 0x4044)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4044)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4044)" (( "(") (binary_expression "iVar18 + 0x4044" (identifier "iVar18") (+ "+") (number_literal "0x4044")) () ")")))) (, ",") (identifier "pppppbVar35") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar27 == 0) {\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }" (if "if") (parenthesized_expression "(iVar27 == 0)" (( "(") (binary_expression "iVar27 == 0" (identifier "iVar27") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);\n                    goto LAB_000787a4;\n                  }" ({ "{") (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32)" (identifier "iVar27") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38158))\n                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38158)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38158)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38158)" (( "(") (binary_expression "pcVar40 + 0x38158" (identifier "pcVar40") (+ "+") (number_literal "0x38158")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32)" (( "(") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x4020" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x4020")) (, ",") (identifier "pppppbVar32") () ")")))) (; ";")) (goto_statement "goto LAB_000787a4;" (goto "goto") (statement_identifier "LAB_000787a4") (; ";")) (} "}"))) (expression_statement "share_xchannel_failure(iVar18,iVar27);" (call_expression "share_xchannel_failure(iVar18,iVar27)" (identifier "share_xchannel_failure") (argument_list "(iVar18,iVar27)" (( "(") (identifier "iVar18") (, ",") (identifier "iVar27") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" (else "else") (compound_statement "{\n                  iVar11 = *(int *)(iVar18 + 0xc);\n                  uVar41 = 0x5c;\nLAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);\n                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);\n                  (**(code **)(pcVar40 + 0x38124))(iVar22);\n                  *(undefined4 *)(iVar18 + 0x4030) = 0;\n                }" ({ "{") (expression_statement "iVar11 = *(int *)(iVar18 + 0xc);" (assignment_expression "iVar11 = *(int *)(iVar18 + 0xc)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar41 = 0x5c;" (assignment_expression "uVar41 = 0x5c" (identifier "uVar41") (= "=") (number_literal "0x5c")) (; ";")) (labeled_statement "LAB_000786e4:\n                  (**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);" (statement_identifier "LAB_000786e4") (: ":") (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x388fc)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x388fc)" (* "*") (cast_expression "(code **)(pcVar40 + 0x388fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x388fc)" (( "(") (binary_expression "pcVar40 + 0x388fc" (identifier "pcVar40") (+ "+") (number_literal "0x388fc")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,\n                             iVar27,pbVar31,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar11 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar11 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar18 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 4)" (( "(") (binary_expression "iVar18 + 4" (identifier "iVar18") (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "uVar41") (, ",") (identifier "iVar27") (, ",") (identifier "pbVar31") (, ",") (number_literal "0") () ")"))) (; ";"))) (expression_statement "del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);" (call_expression "del234(*(undefined4 *)(iVar18 + 0x4034),iVar22)" (identifier "del234") (argument_list "(*(undefined4 *)(iVar18 + 0x4034),iVar22)" (( "(") (pointer_expression "*(undefined4 *)(iVar18 + 0x4034)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4034)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4034)" (( "(") (binary_expression "iVar18 + 0x4034" (identifier "iVar18") (+ "+") (number_literal "0x4034")) () ")")))) (, ",") (identifier "iVar22") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar40 + 0x38124))(iVar22);" (call_expression "(**(code **)(pcVar40 + 0x38124))(iVar22)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38124)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) () ")")) (argument_list "(iVar22)" (( "(") (identifier "iVar22") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (goto_statement "goto LAB_000784dc;" (goto "goto") (statement_identifier "LAB_000784dc") (; ";")) (} "}"))) (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048)" (identifier "iVar27") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38158)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38158)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38158)" (( "(") (binary_expression "pcVar40 + 0x38158" (identifier "pcVar40") (+ "+") (number_literal "0x38158")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x4048)" (( "(") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x4048" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x4048")) () ")")))) (; ";")) (goto_statement "goto LAB_000787a4;" (goto "goto") (statement_identifier "LAB_000787a4") (; ";")) (} "}"))) (if_statement "if (0x5b < bVar21) {\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }" (if "if") (parenthesized_expression "(0x5b < bVar21)" (( "(") (binary_expression "0x5b < bVar21" (number_literal "0x5b") (< "<") (identifier "bVar21")) () ")")) (compound_statement "{\n              if (100 < bVar21) goto LAB_0007878c;\n              goto LAB_00078844;\n            }" ({ "{") (if_statement "if (100 < bVar21) goto LAB_0007878c;" (if "if") (parenthesized_expression "(100 < bVar21)" (( "(") (binary_expression "100 < bVar21" (number_literal "100") (< "<") (identifier "bVar21")) () ")")) (goto_statement "goto LAB_0007878c;" (goto "goto") (statement_identifier "LAB_0007878c") (; ";"))) (goto_statement "goto LAB_00078844;" (goto "goto") (statement_identifier "LAB_00078844") (; ";")) (} "}"))) (if_statement "if ((int)pbVar31 < 0x10) {\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }" (if "if") (parenthesized_expression "((int)pbVar31 < 0x10)" (( "(") (binary_expression "(int)pbVar31 < 0x10" (cast_expression "(int)pbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar31")) (< "<") (number_literal "0x10")) () ")")) (compound_statement "{\n              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);\n              goto LAB_000787a4;\n            }" ({ "{") (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4)" (identifier "iVar27") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38158)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38158)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38158)" (( "(") (binary_expression "pcVar40 + 0x38158" (identifier "pcVar40") (+ "+") (number_literal "0x38158")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x40f4)" (( "(") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x40f4" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x40f4")) () ")")))) (; ";")) (goto_statement "goto LAB_000787a4;" (goto "goto") (statement_identifier "LAB_000787a4") (; ";")) (} "}"))) (expression_statement "uVar30 = iVar18 + 0x25U & 3;" (assignment_expression "uVar30 = iVar18 + 0x25U & 3" (identifier "uVar30") (= "=") (binary_expression "iVar18 + 0x25U & 3" (binary_expression "iVar18 + 0x25U" (identifier "iVar18") (+ "+") (number_literal "0x25U")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar41 = *(undefined4 *)(iVar18 + 0x29);" (assignment_expression "uVar41 = *(undefined4 *)(iVar18 + 0x29)" (identifier "uVar41") (= "=") (pointer_expression "*(undefined4 *)(iVar18 + 0x29)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x29)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x29)" (( "(") (binary_expression "iVar18 + 0x29" (identifier "iVar18") (+ "+") (number_literal "0x29")) () ")"))))) (; ";")) (expression_statement "uVar23 = iVar18 + 0x28U & 3;" (assignment_expression "uVar23 = iVar18 + 0x28U & 3" (identifier "uVar23") (= "=") (binary_expression "iVar18 + 0x28U & 3" (binary_expression "iVar18 + 0x28U" (identifier "iVar18") (+ "+") (number_literal "0x28U")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);" (assignment_expression "pppppbVar32 = (byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8)" (identifier "pppppbVar32") (= "=") (cast_expression "(byte *****)\n                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8)" (( "(") (binary_expression "(*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8 |\n                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8" (binary_expression "(*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &\n                           -1 << (uVar23 + 1) * 8" (parenthesized_expression "(*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8)" (( "(") (binary_expression "*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |\n                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8" (binary_expression "*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8" (pointer_expression "*(int *)((iVar18 + 0x25U) - uVar30)" (* "*") (cast_expression "(int *)((iVar18 + 0x25U) - uVar30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar18 + 0x25U) - uVar30)" (( "(") (binary_expression "(iVar18 + 0x25U) - uVar30" (parenthesized_expression "(iVar18 + 0x25U)" (( "(") (binary_expression "iVar18 + 0x25U" (identifier "iVar18") (+ "+") (number_literal "0x25U")) () ")")) (- "-") (identifier "uVar30")) () ")")))) (<< "<<") (binary_expression "uVar30 * 8" (identifier "uVar30") (* "*") (number_literal "8"))) (| "|") (binary_expression "(uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8" (cast_expression "(uint)pppppbVar32" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pppppbVar32")) (& "&") (binary_expression "0xffffffffU >> (4 - uVar30) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(4 - uVar30) * 8" (parenthesized_expression "(4 - uVar30)" (( "(") (binary_expression "4 - uVar30" (number_literal "4") (- "-") (identifier "uVar30")) () ")")) (* "*") (number_literal "8"))))) () ")")) (& "&") (binary_expression "-1 << (uVar23 + 1) * 8" (number_literal "-1") (<< "<<") (binary_expression "(uVar23 + 1) * 8" (parenthesized_expression "(uVar23 + 1)" (( "(") (binary_expression "uVar23 + 1" (identifier "uVar23") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "*(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8" (pointer_expression "*(uint *)((iVar18 + 0x28U) - uVar23)" (* "*") (cast_expression "(uint *)((iVar18 + 0x28U) - uVar23)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar18 + 0x28U) - uVar23)" (( "(") (binary_expression "(iVar18 + 0x28U) - uVar23" (parenthesized_expression "(iVar18 + 0x28U)" (( "(") (binary_expression "iVar18 + 0x28U" (identifier "iVar18") (+ "+") (number_literal "0x28U")) () ")")) (- "-") (identifier "uVar23")) () ")")))) (>> ">>") (binary_expression "(3 - uVar23) * 8" (parenthesized_expression "(3 - uVar23)" (( "(") (binary_expression "3 - uVar23" (number_literal "3") (- "-") (identifier "uVar23")) () ")")) (* "*") (number_literal "8")))) () ")")))) (; ";")) (expression_statement "ppppbStack_e8 = (byte ****)pppppbVar32;" (assignment_expression "ppppbStack_e8 = (byte ****)pppppbVar32" (identifier "ppppbStack_e8") (= "=") (cast_expression "(byte ****)pppppbVar32" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "pppppbVar32"))) (; ";")) (expression_statement "iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);" (assignment_expression "iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8)" (identifier "iVar22") (= "=") (call_expression "find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8)" (identifier "find234") (argument_list "(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8)" (( "(") (pointer_expression "*(undefined4 *)(iVar18 + 0x4034)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4034)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4034)" (( "(") (binary_expression "iVar18 + 0x4034" (identifier "iVar18") (+ "+") (number_literal "0x4034")) () ")")))) (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) () ")")))) (; ";")) (if_statement "if (iVar22 == 0) {\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }\n            else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }" (if "if") (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              ppppbStack_e4 = (byte ****)pppppbVar32;\n              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);\n              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;\n              ppppbVar12 = *pppppbVar35;\n            }" ({ "{") (expression_statement "ppppbStack_e4 = (byte ****)pppppbVar32;" (assignment_expression "ppppbStack_e4 = (byte ****)pppppbVar32" (identifier "ppppbStack_e4") (= "=") (cast_expression "(byte ****)pppppbVar32" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (identifier "pppppbVar32"))) (; ";")) (expression_statement "pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);" (assignment_expression "pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0)" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (call_expression "find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0)" (identifier "find234") (argument_list "(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar18 + 0x4044)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4044)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4044)" (( "(") (binary_expression "iVar18 + 0x4044" (identifier "iVar18") (+ "+") (number_literal "0x4044")) () ")")))) (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;" (if "if") (parenthesized_expression "(pppppbVar35 == (byte *****)0x0)" (( "(") (binary_expression "pppppbVar35 == (byte *****)0x0" (identifier "pppppbVar35") (== "==") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0007927c;" (goto "goto") (statement_identifier "LAB_0007927c") (; ";"))) (expression_statement "ppppbVar12 = *pppppbVar35;" (assignment_expression "ppppbVar12 = *pppppbVar35" (identifier "ppppbVar12") (= "=") (pointer_expression "*pppppbVar35" (* "*") (identifier "pppppbVar35"))) (; ";")) (} "}")) (else_clause "else {\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }" (else "else") (compound_statement "{\n              pppppbVar35 = (byte *****)0x0;\n              ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n            }" ({ "{") (expression_statement "pppppbVar35 = (byte *****)0x0;" (assignment_expression "pppppbVar35 = (byte *****)0x0" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);" (assignment_expression "ppppbVar12 = (byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (identifier "ppppbVar12") (= "=") (cast_expression "(byte ****)\n                           (**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (call_expression "(**(code **)(pcVar40 + 0x38914))\n                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38914))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38914)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38914)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38914)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38914)" (( "(") (binary_expression "pcVar40 + 0x38914" (identifier "pcVar40") (+ "+") (number_literal "0x38914")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "iVar18") () ")"))))) (; ";")) (} "}")))) (expression_statement "*(char *)(iVar18 + 0x2c) = (char)ppppbVar12;" (assignment_expression "*(char *)(iVar18 + 0x2c) = (char)ppppbVar12" (pointer_expression "*(char *)(iVar18 + 0x2c)" (* "*") (cast_expression "(char *)(iVar18 + 0x2c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x2c)" (( "(") (binary_expression "iVar18 + 0x2c" (identifier "iVar18") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (cast_expression "(char)ppppbVar12" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "ppppbVar12"))) (; ";")) (expression_statement "*(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);" (assignment_expression "*(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18)" (pointer_expression "*(char *)(iVar18 + 0x29)" (* "*") (cast_expression "(char *)(iVar18 + 0x29)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x29)" (( "(") (binary_expression "iVar18 + 0x29" (identifier "iVar18") (+ "+") (number_literal "0x29")) () ")")))) (= "=") (cast_expression "(char)((uint)ppppbVar12 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)ppppbVar12 >> 0x18)" (( "(") (binary_expression "(uint)ppppbVar12 >> 0x18" (cast_expression "(uint)ppppbVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppbVar12")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "*(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);" (assignment_expression "*(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10)" (pointer_expression "*(char *)(iVar18 + 0x2a)" (* "*") (cast_expression "(char *)(iVar18 + 0x2a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x2a)" (( "(") (binary_expression "iVar18 + 0x2a" (identifier "iVar18") (+ "+") (number_literal "0x2a")) () ")")))) (= "=") (cast_expression "(char)((uint)ppppbVar12 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)ppppbVar12 >> 0x10)" (( "(") (binary_expression "(uint)ppppbVar12 >> 0x10" (cast_expression "(uint)ppppbVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppbVar12")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "*(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);" (assignment_expression "*(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8)" (pointer_expression "*(char *)(iVar18 + 0x2b)" (* "*") (cast_expression "(char *)(iVar18 + 0x2b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x2b)" (( "(") (binary_expression "iVar18 + 0x2b" (identifier "iVar18") (+ "+") (number_literal "0x2b")) () ")")))) (= "=") (cast_expression "(char)((uint)ppppbVar12 >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)ppppbVar12 >> 8)" (( "(") (binary_expression "(uint)ppppbVar12 >> 8" (cast_expression "(uint)ppppbVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppppbVar12")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar30 = iVar18 + 0x31U & 3;" (assignment_expression "uVar30 = iVar18 + 0x31U & 3" (identifier "uVar30") (= "=") (binary_expression "iVar18 + 0x31U & 3" (binary_expression "iVar18 + 0x31U" (identifier "iVar18") (+ "+") (number_literal "0x31U")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar23 = iVar18 + 0x34U & 3;" (assignment_expression "uVar23 = iVar18 + 0x34U & 3" (identifier "uVar23") (= "=") (binary_expression "iVar18 + 0x34U & 3" (binary_expression "iVar18 + 0x34U" (identifier "iVar18") (+ "+") (number_literal "0x34U")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);" (assignment_expression "uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8)" (identifier "uVar41") (= "=") (call_expression "FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8)" (identifier "FUN_00076c74") (argument_list "(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,\n                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8)" (( "(") (binary_expression "iVar18 + 0x4038" (identifier "iVar18") (+ "+") (number_literal "0x4038")) (, ",") (binary_expression "iVar18 + 0x403c" (identifier "iVar18") (+ "+") (number_literal "0x403c")) (, ",") (identifier "uVar41") (, ",") (identifier "ppppbVar12") (, ",") (identifier "pppppbVar32") (, ",") (number_literal "0") (, ",") (binary_expression "(*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8\n                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8" (binary_expression "(*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8" (parenthesized_expression "(*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8)" (( "(") (binary_expression "*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |\n                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8" (binary_expression "*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8" (pointer_expression "*(int *)((iVar18 + 0x31U) - uVar30)" (* "*") (cast_expression "(int *)((iVar18 + 0x31U) - uVar30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar18 + 0x31U) - uVar30)" (( "(") (binary_expression "(iVar18 + 0x31U) - uVar30" (parenthesized_expression "(iVar18 + 0x31U)" (( "(") (binary_expression "iVar18 + 0x31U" (identifier "iVar18") (+ "+") (number_literal "0x31U")) () ")")) (- "-") (identifier "uVar30")) () ")")))) (<< "<<") (binary_expression "uVar30 * 8" (identifier "uVar30") (* "*") (number_literal "8"))) (| "|") (binary_expression "in_t3 & 0xffffffffU >> (4 - uVar30) * 8" (identifier "in_t3") (& "&") (binary_expression "0xffffffffU >> (4 - uVar30) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(4 - uVar30) * 8" (parenthesized_expression "(4 - uVar30)" (( "(") (binary_expression "4 - uVar30" (number_literal "4") (- "-") (identifier "uVar30")) () ")")) (* "*") (number_literal "8"))))) () ")")) (& "&") (binary_expression "-1 << (uVar23 + 1) * 8" (number_literal "-1") (<< "<<") (binary_expression "(uVar23 + 1) * 8" (parenthesized_expression "(uVar23 + 1)" (( "(") (binary_expression "uVar23 + 1" (identifier "uVar23") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "*(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8" (pointer_expression "*(uint *)((iVar18 + 0x34U) - uVar23)" (* "*") (cast_expression "(uint *)((iVar18 + 0x34U) - uVar23)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar18 + 0x34U) - uVar23)" (( "(") (binary_expression "(iVar18 + 0x34U) - uVar23" (parenthesized_expression "(iVar18 + 0x34U)" (( "(") (binary_expression "iVar18 + 0x34U" (identifier "iVar18") (+ "+") (number_literal "0x34U")) () ")")) (- "-") (identifier "uVar23")) () ")")))) (>> ">>") (binary_expression "(3 - uVar23) * 8" (parenthesized_expression "(3 - uVar23)" (( "(") (binary_expression "3 - uVar23" (number_literal "3") (- "-") (identifier "uVar23")) () ")")) (* "*") (number_literal "8")))) () ")")))) (; ";")) (if_statement "if (iVar22 != 0) {\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }" (if "if") (parenthesized_expression "(iVar22 != 0)" (( "(") (binary_expression "iVar22 != 0" (identifier "iVar22") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              iVar11 = *(int *)(iVar18 + 0xc);\n              uVar41 = 0x5b;\n              goto LAB_000786e4;\n            }" ({ "{") (expression_statement "iVar11 = *(int *)(iVar18 + 0xc);" (assignment_expression "iVar11 = *(int *)(iVar18 + 0xc)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar41 = 0x5b;" (assignment_expression "uVar41 = 0x5b" (identifier "uVar41") (= "=") (number_literal "0x5b")) (; ";")) (goto_statement "goto LAB_000786e4;" (goto "goto") (statement_identifier "LAB_000786e4") (; ";")) (} "}"))) (if_statement "if (pppppbVar35 != (byte *****)0x0) {\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }" (if "if") (parenthesized_expression "(pppppbVar35 != (byte *****)0x0)" (( "(") (binary_expression "pppppbVar35 != (byte *****)0x0" (identifier "pppppbVar35") (!= "!=") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }\n              share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);\n              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);\n              *(undefined4 *)(iVar18 + 0x4030) = 0;\n              goto LAB_000784dc;\n            }" ({ "{") (if_statement "if (*(uint *)(iVar18 + 0x2d) < 0x100) {\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }" (if "if") (parenthesized_expression "(*(uint *)(iVar18 + 0x2d) < 0x100)" (( "(") (binary_expression "*(uint *)(iVar18 + 0x2d) < 0x100" (pointer_expression "*(uint *)(iVar18 + 0x2d)" (* "*") (cast_expression "(uint *)(iVar18 + 0x2d)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x2d)" (( "(") (binary_expression "iVar18 + 0x2d" (identifier "iVar18") (+ "+") (number_literal "0x2d")) () ")")))) (< "<") (number_literal "0x100")) () ")")) (compound_statement "{\n                iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));\n                goto LAB_000787a4;\n              }" ({ "{") (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d))" (identifier "iVar27") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38158))\n                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d))" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38158)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38158)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38158)" (( "(") (binary_expression "pcVar40 + 0x38158" (identifier "pcVar40") (+ "+") (number_literal "0x38158")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d))" (( "(") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x408c" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x408c")) (, ",") (pointer_expression "*(uint *)(iVar18 + 0x2d)" (* "*") (cast_expression "(uint *)(iVar18 + 0x2d)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x2d)" (( "(") (binary_expression "iVar18 + 0x2d" (identifier "iVar18") (+ "+") (number_literal "0x2d")) () ")")))) () ")")))) (; ";")) (goto_statement "goto LAB_000787a4;" (goto "goto") (statement_identifier "LAB_000787a4") (; ";")) (} "}"))) (expression_statement "share_xchannel_confirmation(iVar18,pppppbVar35,uVar41);" (call_expression "share_xchannel_confirmation(iVar18,pppppbVar35,uVar41)" (identifier "share_xchannel_confirmation") (argument_list "(iVar18,pppppbVar35,uVar41)" (( "(") (identifier "iVar18") (, ",") (identifier "pppppbVar35") (, ",") (identifier "uVar41") () ")"))) (; ";")) (expression_statement "FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);" (call_expression "FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35)" (identifier "FUN_00076be8") (argument_list "(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35)" (( "(") (pointer_expression "*(undefined4 *)(iVar18 + 0x4040)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4040)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4040)" (( "(") (binary_expression "iVar18 + 0x4040" (identifier "iVar18") (+ "+") (number_literal "0x4040")) () ")")))) (, ",") (binary_expression "iVar18 + 0x4044" (identifier "iVar18") (+ "+") (number_literal "0x4044")) (, ",") (identifier "pppppbVar35") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000784dc;" (goto "goto") (statement_identifier "LAB_000784dc") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_000784d4:\n          *(undefined4 *)(iVar18 + 0x4030) = 0;" (statement_identifier "LAB_000784d4") (: ":") (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto LAB_000784dc;" (goto "goto") (statement_identifier "LAB_000784dc") (; ";")) (} "}"))) (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")"))))) (; ";")) (if_statement "if (3 < (int)pbVar31) {\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }" (if "if") (parenthesized_expression "(3 < (int)pbVar31)" (( "(") (binary_expression "3 < (int)pbVar31" (number_literal "3") (< "<") (cast_expression "(int)pbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar31"))) () ")")) (compound_statement "{\n          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);\n          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }\n          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);\n          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);\n          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);\n          pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);\n          uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);\n          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);\n          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);\n          *pbVar16 = (byte)((uint)uVar41 >> 0x10);\n          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);\n          *pbVar28 = (byte)uVar41;\n          (**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);\n          *(undefined4 *)(iVar18 + 0x4030) = 0;\n          goto LAB_000784dc;\n        }" ({ "{") (expression_statement "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);" (assignment_expression "iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" (identifier "iVar22") (= "=") (call_expression "FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8)" (identifier "FUN_00076af0") (argument_list "(iVar27,pbVar31,0,&ppppbStack_e8)" (( "(") (identifier "iVar27") (, ",") (identifier "pbVar31") (, ",") (number_literal "0") (, ",") (pointer_expression "&ppppbStack_e8" (& "&") (identifier "ppppbStack_e8")) () ")")))) (; ";")) (if_statement "if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }" (if "if") (parenthesized_expression "(((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8))" (( "(") (binary_expression "((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||\n             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)" (parenthesized_expression "((iVar22 == 0) || ((int)ppppbStack_e8 < 0))" (( "(") (binary_expression "(iVar22 == 0) || ((int)ppppbStack_e8 < 0)" (parenthesized_expression "(iVar22 == 0)" (( "(") (binary_expression "iVar22 == 0" (identifier "iVar22") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((int)ppppbStack_e8 < 0)" (( "(") (binary_expression "(int)ppppbStack_e8 < 0" (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8")) (< "<") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)" (( "(") (comma_expression "pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),\n             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8" (assignment_expression "pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27)" (identifier "pppppbVar32") (= "=") (cast_expression "(byte *****)((int)ppppbStack_e8 + iVar27)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((int)ppppbStack_e8 + iVar27)" (( "(") (binary_expression "(int)ppppbStack_e8 + iVar27" (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8")) (+ "+") (identifier "iVar27")) () ")")))) (, ",") (binary_expression "(int)(pppppbVar35 + -4) <= (int)ppppbStack_e8" (cast_expression "(int)(pppppbVar35 + -4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pppppbVar35 + -4)" (( "(") (binary_expression "pppppbVar35 + -4" (identifier "pppppbVar35") (+ "+") (number_literal "-4")) () ")"))) (<= "<=") (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8")))) () ")"))) () ")")) (compound_statement "{\n            iVar22 = *(int *)(pcVar40 + 0x38144);\n            goto LAB_00078e80;\n          }" ({ "{") (expression_statement "iVar22 = *(int *)(pcVar40 + 0x38144);" (assignment_expression "iVar22 = *(int *)(pcVar40 + 0x38144)" (identifier "iVar22") (= "=") (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")"))))) (; ";")) (goto_statement "goto LAB_00078e80;" (goto "goto") (statement_identifier "LAB_00078e80") (; ";")) (} "}"))) (expression_statement "pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);" (assignment_expression "pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26)" (identifier "pbVar16") (= "=") (cast_expression "(byte *)((int)ppppbStack_e8 + iVar18 + 0x26)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppbStack_e8 + iVar18 + 0x26)" (( "(") (binary_expression "(int)ppppbStack_e8 + iVar18 + 0x26" (binary_expression "(int)ppppbStack_e8 + iVar18" (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8")) (+ "+") (identifier "iVar18")) (+ "+") (number_literal "0x26")) () ")")))) (; ";")) (expression_statement "ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);" (assignment_expression "ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27)" (identifier "ppppbStack_108") (= "=") (cast_expression "(byte ****)((int)ppppbStack_e8 + iVar18 + 0x27)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)ppppbStack_e8 + iVar18 + 0x27)" (( "(") (binary_expression "(int)ppppbStack_e8 + iVar18 + 0x27" (binary_expression "(int)ppppbStack_e8 + iVar18" (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8")) (+ "+") (identifier "iVar18")) (+ "+") (number_literal "0x27")) () ")")))) (; ";")) (expression_statement "pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);" (assignment_expression "pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28)" (identifier "pbVar28") (= "=") (cast_expression "(byte *)((int)ppppbStack_e8 + iVar18 + 0x28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppbStack_e8 + iVar18 + 0x28)" (( "(") (binary_expression "(int)ppppbStack_e8 + iVar18 + 0x28" (binary_expression "(int)ppppbStack_e8 + iVar18" (cast_expression "(int)ppppbStack_e8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_e8")) (+ "+") (identifier "iVar18")) (+ "+") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);" (assignment_expression "pppppbVar35 = (byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8)" (identifier "pppppbVar35") (= "=") (cast_expression "(byte *****)\n                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8)" (( "(") (binary_expression "(uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8" (binary_expression "(uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |\n                         (uint)*pbVar28" (binary_expression "(uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10" (binary_expression "(uint)*(byte *)pppppbVar32 << 0x18" (binary_expression "(uint)*(byte *)pppppbVar32" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)pppppbVar32" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppbVar32"))) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uint)*pbVar16 << 0x10" (binary_expression "(uint)*pbVar16" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar16")) (<< "<<") (number_literal "0x10"))) (| "|") (binary_expression "(uint)*pbVar28" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar28"))) (| "|") (binary_expression "(uint)*(byte *)ppppbStack_108 << 8" (binary_expression "(uint)*(byte *)ppppbStack_108" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)ppppbStack_108" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppbStack_108"))) (<< "<<") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);" (assignment_expression "uVar41 = (**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (identifier "uVar41") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38914))\n                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38914))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38914)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38914)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38914)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38914)" (( "(") (binary_expression "pcVar40 + 0x38914" (identifier "pcVar40") (+ "+") (number_literal "0x38914")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "iVar18") () ")")))) (; ";")) (expression_statement "FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);" (call_expression "FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8)" (identifier "FUN_00076c74") (argument_list "(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,\n                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8)" (( "(") (binary_expression "iVar18 + 0x4038" (identifier "iVar18") (+ "+") (number_literal "0x4038")) (, ",") (binary_expression "iVar18 + 0x403c" (identifier "iVar18") (+ "+") (number_literal "0x403c")) (, ",") (identifier "pppppbVar35") (, ",") (identifier "uVar41") (, ",") (number_literal "0") (, ",") (number_literal "3") (, ",") (binary_expression "(uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |\n                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8" (binary_expression "(uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |\n                       (uint)*(byte *)((int)pppppbVar32 + 0xb)" (binary_expression "(uint)*(byte *)(pppppbVar32 + 2) << 0x18 |\n                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10" (binary_expression "(uint)*(byte *)(pppppbVar32 + 2) << 0x18" (binary_expression "(uint)*(byte *)(pppppbVar32 + 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(pppppbVar32 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pppppbVar32 + 2)" (( "(") (binary_expression "pppppbVar32 + 2" (identifier "pppppbVar32") (+ "+") (number_literal "2")) () ")")))) (<< "<<") (number_literal "0x18")) (| "|") (binary_expression "(uint)*(byte *)((int)pppppbVar32 + 9) << 0x10" (binary_expression "(uint)*(byte *)((int)pppppbVar32 + 9)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)pppppbVar32 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar32 + 9)" (( "(") (binary_expression "(int)pppppbVar32 + 9" (cast_expression "(int)pppppbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar32")) (+ "+") (number_literal "9")) () ")")))) (<< "<<") (number_literal "0x10"))) (| "|") (binary_expression "(uint)*(byte *)((int)pppppbVar32 + 0xb)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)pppppbVar32 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar32 + 0xb)" (( "(") (binary_expression "(int)pppppbVar32 + 0xb" (cast_expression "(int)pppppbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar32")) (+ "+") (number_literal "0xb")) () ")"))))) (| "|") (binary_expression "(uint)*(byte *)((int)pppppbVar32 + 10) << 8" (binary_expression "(uint)*(byte *)((int)pppppbVar32 + 10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)pppppbVar32 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppppbVar32 + 10)" (( "(") (binary_expression "(int)pppppbVar32 + 10" (cast_expression "(int)pppppbVar32" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppppbVar32")) (+ "+") (number_literal "10")) () ")")))) (<< "<<") (number_literal "8"))) () ")"))) (; ";")) (expression_statement "*(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);" (assignment_expression "*(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18)" (pointer_expression "*(byte *)pppppbVar32" (* "*") (cast_expression "(byte *)pppppbVar32" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppppbVar32"))) (= "=") (call_expression "(byte)((uint)uVar41 >> 0x18)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)uVar41 >> 0x18)" (( "(") (binary_expression "(uint)uVar41 >> 0x18" (cast_expression "(uint)uVar41" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar41")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "*pbVar16 = (byte)((uint)uVar41 >> 0x10);" (assignment_expression "*pbVar16 = (byte)((uint)uVar41 >> 0x10)" (pointer_expression "*pbVar16" (* "*") (identifier "pbVar16")) (= "=") (call_expression "(byte)((uint)uVar41 >> 0x10)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)uVar41 >> 0x10)" (( "(") (binary_expression "(uint)uVar41 >> 0x10" (cast_expression "(uint)uVar41" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar41")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "*(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);" (assignment_expression "*(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8)" (pointer_expression "*(byte *)ppppbStack_108" (* "*") (cast_expression "(byte *)ppppbStack_108" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppbStack_108"))) (= "=") (call_expression "(byte)((uint)uVar41 >> 8)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((uint)uVar41 >> 8)" (( "(") (binary_expression "(uint)uVar41 >> 8" (cast_expression "(uint)uVar41" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar41")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar28 = (byte)uVar41;" (assignment_expression "*pbVar28 = (byte)uVar41" (pointer_expression "*pbVar28" (* "*") (identifier "pbVar28")) (= "=") (cast_expression "(byte)uVar41" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar41"))) (; ";")) (expression_statement "(**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0);" (call_expression "(**(code **)(pcVar40 + 0x388fc))\n                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388fc))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x388fc)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x388fc)" (* "*") (cast_expression "(code **)(pcVar40 + 0x388fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x388fc)" (( "(") (binary_expression "pcVar40 + 0x388fc" (identifier "pcVar40") (+ "+") (number_literal "0x388fc")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a\n                     ,iVar27,pbVar31,0)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar18 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 4)" (( "(") (binary_expression "iVar18 + 4" (identifier "iVar18") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0x5a") (, ",") (identifier "iVar27") (, ",") (identifier "pbVar31") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000784dc;" (goto "goto") (statement_identifier "LAB_000784dc") (; ";")) (} "}"))) (labeled_statement "LAB_00078e80:\n        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);" (statement_identifier "LAB_00078e80") (: ":") (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114)" (identifier "iVar27") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38158)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38158)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38158)" (( "(") (binary_expression "pcVar40 + 0x38158" (identifier "pcVar40") (+ "+") (number_literal "0x38158")) () ")"))))) () ")")) (argument_list "(iVar22 + -0x4114)" (( "(") (binary_expression "iVar22 + -0x4114" (identifier "iVar22") (+ "+") (number_literal "-0x4114")) () ")")))) (; ";"))) (labeled_statement "LAB_000787a4:\n        while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }" (statement_identifier "LAB_000787a4") (: ":") (while_statement "while (iVar27 == 0) {\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }" (while "while") (parenthesized_expression "(iVar27 == 0)" (( "(") (binary_expression "iVar27 == 0" (identifier "iVar27") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          (**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);\nLAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);\n        }" ({ "{") (expression_statement "(**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);" (call_expression "(**(code **)(pcVar40 + 0x38a34))\n                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38a34))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38a34)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38a34)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38a34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38a34)" (( "(") (binary_expression "pcVar40 + 0x38a34" (identifier "pcVar40") (+ "+") (number_literal "0x38a34")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,\n                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30)" (( "(") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3f38" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x3f38")) (, ",") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x42c4" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x42c4")) (, ",") (number_literal "0x6e6") (, ",") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3e30" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x3e30")) () ")"))) (; ";")) (labeled_statement "LAB_0007927c:\n          iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);" (statement_identifier "LAB_0007927c") (: ":") (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32)" (identifier "iVar27") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38158))\n                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38158)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38158)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38158)" (( "(") (binary_expression "pcVar40 + 0x38158" (identifier "pcVar40") (+ "+") (number_literal "0x38158")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32)" (( "(") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x40c8" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x40c8")) (, ",") (identifier "pppppbVar32") () ")")))) (; ";"))) (} "}")))) (expression_statement "FUN_00077910(iVar18,iVar27);" (call_expression "FUN_00077910(iVar18,iVar27)" (identifier "FUN_00077910") (argument_list "(iVar18,iVar27)" (( "(") (identifier "iVar18") (, ",") (identifier "iVar27") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar40 + 0x38124))(iVar27);" (call_expression "(**(code **)(pcVar40 + 0x38124))(iVar27)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38124)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) () ")")) (argument_list "(iVar27)" (( "(") (identifier "iVar27") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000784dc;" (goto "goto") (statement_identifier "LAB_000784dc") (; ";")) (} "}"))) (expression_statement "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);" (assignment_expression "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27)" (identifier "uVar41") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38158)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38158)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38158)" (( "(") (binary_expression "pcVar40 + 0x38158" (identifier "pcVar40") (+ "+") (number_literal "0x38158")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27)" (( "(") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x415c" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x415c")) (, ",") (identifier "iVar27") () ")")))) (; ";")) (labeled_statement "LAB_000781e4:\n      FUN_00077910(iVar18,uVar41);" (statement_identifier "LAB_000781e4") (: ":") (expression_statement "FUN_00077910(iVar18,uVar41);" (call_expression "FUN_00077910(iVar18,uVar41)" (identifier "FUN_00077910") (argument_list "(iVar18,uVar41)" (( "(") (identifier "iVar18") (, ",") (identifier "uVar41") () ")"))) (; ";"))) (expression_statement "(**(code **)(pcVar40 + 0x38124))(uVar41);" (call_expression "(**(code **)(pcVar40 + 0x38124))(uVar41)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38124))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38124)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38124)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38124)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38124)" (( "(") (binary_expression "pcVar40 + 0x38124" (identifier "pcVar40") (+ "+") (number_literal "0x38124")) () ")"))))) () ")")) (argument_list "(uVar41)" (( "(") (identifier "uVar41") () ")"))) (; ";")) (expression_statement "param_1 = pbVar25;" (assignment_expression "param_1 = pbVar25" (identifier "param_1") (= "=") (identifier "pbVar25")) (; ";")) (labeled_statement "LAB_00078210:\n      *(undefined4 *)(iVar18 + 0x10) = 0;" (statement_identifier "LAB_00078210") (: ":") (expression_statement "*(undefined4 *)(iVar18 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x10)" (( "(") (binary_expression "iVar18 + 0x10" (identifier "iVar18") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}"))) (expression_statement "uVar30 = *(uint *)(iVar18 + 0x4030);" (assignment_expression "uVar30 = *(uint *)(iVar18 + 0x4030)" (identifier "uVar30") (= "=") (pointer_expression "*(uint *)(iVar18 + 0x4030)" (* "*") (cast_expression "(uint *)(iVar18 + 0x4030)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")"))))) (; ";")) (expression_statement "bVar21 = *pbVar25;" (assignment_expression "bVar21 = *pbVar25" (identifier "bVar21") (= "=") (pointer_expression "*pbVar25" (* "*") (identifier "pbVar25"))) (; ";")) (expression_statement "pbVar34 = pbVar31 + -1;" (assignment_expression "pbVar34 = pbVar31 + -1" (identifier "pbVar34") (= "=") (binary_expression "pbVar31 + -1" (identifier "pbVar31") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pbVar28 = pbVar25 + 1;" (assignment_expression "pbVar28 = pbVar25 + 1" (identifier "pbVar28") (= "=") (binary_expression "pbVar25 + 1" (identifier "pbVar25") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar21 == 10) {\nLAB_0007855c:\n    pbVar25 = pbVar28;\n    if (0x2d < uVar30) {\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }\n    uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }" (if "if") (parenthesized_expression "(bVar21 == 10)" (( "(") (binary_expression "bVar21 == 10" (identifier "bVar21") (== "==") (number_literal "10")) () ")")) (compound_statement "{\nLAB_0007855c:\n    pbVar25 = pbVar28;\n    if (0x2d < uVar30) {\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }\n    uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);\n    goto LAB_000781e4;\n  }" ({ "{") (labeled_statement "LAB_0007855c:\n    pbVar25 = pbVar28;" (statement_identifier "LAB_0007855c") (: ":") (expression_statement "pbVar25 = pbVar28;" (assignment_expression "pbVar25 = pbVar28" (identifier "pbVar25") (= "=") (identifier "pbVar28")) (; ";"))) (if_statement "if (0x2d < uVar30) {\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }" (if "if") (parenthesized_expression "(0x2d < uVar30)" (( "(") (binary_expression "0x2d < uVar30" (number_literal "0x2d") (< "<") (identifier "uVar30")) () ")")) (compound_statement "{\n      pppppbVar32 = (byte *****)(iVar18 + 0x20);\n      iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);\n      if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }\n    }" ({ "{") (expression_statement "pppppbVar32 = (byte *****)(iVar18 + 0x20);" (assignment_expression "pppppbVar32 = (byte *****)(iVar18 + 0x20)" (identifier "pppppbVar32") (= "=") (cast_expression "(byte *****)(iVar18 + 0x20)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(iVar18 + 0x20)" (( "(") (binary_expression "iVar18 + 0x20" (identifier "iVar18") (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);" (assignment_expression "iVar27 = (**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e)" (identifier "iVar27") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38bf8))\n                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38bf8))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38bf8)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38bf8)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38bf8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38bf8)" (( "(") (binary_expression "pcVar40 + 0x38bf8" (identifier "pcVar40") (+ "+") (number_literal "0x38bf8")) () ")"))))) () ")")) (argument_list "(pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e)" (( "(") (identifier "pppppbVar32") (, ",") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x3e10" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x3e10")) (, ",") (number_literal "0x2e") () ")")))) (; ";")) (if_statement "if (iVar27 == 0) {\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }" (if "if") (parenthesized_expression "(iVar27 == 0)" (( "(") (binary_expression "iVar27 == 0" (identifier "iVar27") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }\n        (**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);\n        *(undefined4 *)(iVar18 + 0x18) = 1;\n        *(undefined4 *)(iVar18 + 0x4030) = 0;\n        goto LAB_000784dc;\n      }" ({ "{") (if_statement "if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }" (if "if") (parenthesized_expression "((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r'))" (( "(") (binary_expression "(0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')" (parenthesized_expression "(0 < (int)uVar30)" (( "(") (binary_expression "0 < (int)uVar30" (number_literal "0") (< "<") (cast_expression "(int)uVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar30"))) () ")")) (&& "&&") (parenthesized_expression "(uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')" (( "(") (comma_expression "uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r'" (assignment_expression "uVar23 = uVar30 - 1" (identifier "uVar23") (= "=") (binary_expression "uVar30 - 1" (identifier "uVar30") (- "-") (number_literal "1"))) (, ",") (binary_expression "*(char *)(iVar18 + uVar23 + 0x20) == '\r'" (pointer_expression "*(char *)(iVar18 + uVar23 + 0x20)" (* "*") (cast_expression "(char *)(iVar18 + uVar23 + 0x20)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + uVar23 + 0x20)" (( "(") (binary_expression "iVar18 + uVar23 + 0x20" (binary_expression "iVar18 + uVar23" (identifier "iVar18") (+ "+") (identifier "uVar23")) (+ "+") (number_literal "0x20")) () ")")))) (== "==") (char_literal "'\r'" (' "'") (escape_sequence "\r") (' "'")))) () ")"))) () ")")) (compound_statement "{\n          *(uint *)(iVar18 + 0x4030) = uVar23;\n          uVar30 = uVar23;\n        }" ({ "{") (expression_statement "*(uint *)(iVar18 + 0x4030) = uVar23;" (assignment_expression "*(uint *)(iVar18 + 0x4030) = uVar23" (pointer_expression "*(uint *)(iVar18 + 0x4030)" (* "*") (cast_expression "(uint *)(iVar18 + 0x4030)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (identifier "uVar23")) (; ";")) (expression_statement "uVar30 = uVar23;" (assignment_expression "uVar30 = uVar23" (identifier "uVar30") (= "=") (identifier "uVar23")) (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);" (call_expression "(**(code **)(pcVar40 + 0x388f4))\n                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32)" (parenthesized_expression "(**(code **)(pcVar40 + 0x388f4))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x388f4)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x388f4)" (* "*") (cast_expression "(code **)(pcVar40 + 0x388f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x388f4)" (( "(") (binary_expression "pcVar40 + 0x388f4" (identifier "pcVar40") (+ "+") (number_literal "0x388f4")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),\n                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar18 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(iVar18 + 0xc) + 0x14" (pointer_expression "*(int *)(iVar18 + 0xc)" (* "*") (cast_expression "(int *)(iVar18 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0xc)" (( "(") (binary_expression "iVar18 + 0xc" (identifier "iVar18") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar18 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 4)" (( "(") (binary_expression "iVar18 + 4" (identifier "iVar18") (+ "+") (number_literal "4")) () ")")))) (, ",") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x417c" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x417c")) (, ",") (identifier "uVar30") (, ",") (identifier "pppppbVar32") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 0x18) = 1;" (assignment_expression "*(undefined4 *)(iVar18 + 0x18) = 1" (pointer_expression "*(undefined4 *)(iVar18 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x18)" (( "(") (binary_expression "iVar18 + 0x18" (identifier "iVar18") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(iVar18 + 0x4030) = 0;" (assignment_expression "*(undefined4 *)(iVar18 + 0x4030) = 0" (pointer_expression "*(undefined4 *)(iVar18 + 0x4030)" (* "*") (cast_expression "(undefined4 *)(iVar18 + 0x4030)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000784dc;" (goto "goto") (statement_identifier "LAB_000784dc") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);" (assignment_expression "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac)" (identifier "uVar41") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38158)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38158)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38158)" (( "(") (binary_expression "pcVar40 + 0x38158" (identifier "pcVar40") (+ "+") (number_literal "0x38158")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x41ac)" (( "(") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x41ac" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x41ac")) () ")")))) (; ";")) (goto_statement "goto LAB_000781e4;" (goto "goto") (statement_identifier "LAB_000781e4") (; ";")) (} "}"))) (expression_statement "pbVar16 = pbVar31;" (assignment_expression "pbVar16 = pbVar31" (identifier "pbVar16") (= "=") (identifier "pbVar31")) (; ";")) (if_statement "if (uVar30 < 0x4010) {\n    uVar30 = uVar30 + 1;\n    pbVar26 = pbVar25 + (int)pbVar34;\n    pbVar34 = pbVar31;\n    param_1 = pbVar28;\n    do {\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    } while (uVar30 != 0x4011);\n  }" (if "if") (parenthesized_expression "(uVar30 < 0x4010)" (( "(") (binary_expression "uVar30 < 0x4010" (identifier "uVar30") (< "<") (number_literal "0x4010")) () ")")) (compound_statement "{\n    uVar30 = uVar30 + 1;\n    pbVar26 = pbVar25 + (int)pbVar34;\n    pbVar34 = pbVar31;\n    param_1 = pbVar28;\n    do {\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    } while (uVar30 != 0x4011);\n  }" ({ "{") (expression_statement "uVar30 = uVar30 + 1;" (assignment_expression "uVar30 = uVar30 + 1" (identifier "uVar30") (= "=") (binary_expression "uVar30 + 1" (identifier "uVar30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar26 = pbVar25 + (int)pbVar34;" (assignment_expression "pbVar26 = pbVar25 + (int)pbVar34" (identifier "pbVar26") (= "=") (binary_expression "pbVar25 + (int)pbVar34" (identifier "pbVar25") (+ "+") (cast_expression "(int)pbVar34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar34")))) (; ";")) (expression_statement "pbVar34 = pbVar31;" (assignment_expression "pbVar34 = pbVar31" (identifier "pbVar34") (= "=") (identifier "pbVar31")) (; ";")) (expression_statement "param_1 = pbVar28;" (assignment_expression "param_1 = pbVar28" (identifier "param_1") (= "=") (identifier "pbVar28")) (; ";")) (do_statement "do {\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    } while (uVar30 != 0x4011);" (do "do") (compound_statement "{\n      *(uint *)(iVar18 + 0x4030) = uVar30;\n      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;\n      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;\n      pbVar34 = pbVar26 + -(int)param_1;\n      pbVar28 = param_1 + 1;\n      bVar21 = *param_1;\n      if (bVar21 == 10) goto LAB_0007855c;\n      uVar30 = uVar30 + 1;\n      pbVar16 = pbVar34;\n      param_1 = pbVar28;\n    }" ({ "{") (expression_statement "*(uint *)(iVar18 + 0x4030) = uVar30;" (assignment_expression "*(uint *)(iVar18 + 0x4030) = uVar30" (pointer_expression "*(uint *)(iVar18 + 0x4030)" (* "*") (cast_expression "(uint *)(iVar18 + 0x4030)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + 0x4030)" (( "(") (binary_expression "iVar18 + 0x4030" (identifier "iVar18") (+ "+") (number_literal "0x4030")) () ")")))) (= "=") (identifier "uVar30")) (; ";")) (expression_statement "*(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;" (assignment_expression "*(byte *)(iVar18 + uVar30 + 0x1f) = bVar21" (pointer_expression "*(byte *)(iVar18 + uVar30 + 0x1f)" (* "*") (cast_expression "(byte *)(iVar18 + uVar30 + 0x1f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + uVar30 + 0x1f)" (( "(") (binary_expression "iVar18 + uVar30 + 0x1f" (binary_expression "iVar18 + uVar30" (identifier "iVar18") (+ "+") (identifier "uVar30")) (+ "+") (number_literal "0x1f")) () ")")))) (= "=") (identifier "bVar21")) (; ";")) (if_statement "if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;" (if "if") (parenthesized_expression "(pbVar25 + (int)pbVar31 == param_1)" (( "(") (binary_expression "pbVar25 + (int)pbVar31 == param_1" (binary_expression "pbVar25 + (int)pbVar31" (identifier "pbVar25") (+ "+") (cast_expression "(int)pbVar31" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar31"))) (== "==") (identifier "param_1")) () ")")) (goto_statement "goto LAB_000781c4;" (goto "goto") (statement_identifier "LAB_000781c4") (; ";"))) (expression_statement "pbVar34 = pbVar26 + -(int)param_1;" (assignment_expression "pbVar34 = pbVar26 + -(int)param_1" (identifier "pbVar34") (= "=") (binary_expression "pbVar26 + -(int)param_1" (identifier "pbVar26") (+ "+") (unary_expression "-(int)param_1" (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))))) (; ";")) (expression_statement "pbVar28 = param_1 + 1;" (assignment_expression "pbVar28 = param_1 + 1" (identifier "pbVar28") (= "=") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar21 = *param_1;" (assignment_expression "bVar21 = *param_1" (identifier "bVar21") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (bVar21 == 10) goto LAB_0007855c;" (if "if") (parenthesized_expression "(bVar21 == 10)" (( "(") (binary_expression "bVar21 == 10" (identifier "bVar21") (== "==") (number_literal "10")) () ")")) (goto_statement "goto LAB_0007855c;" (goto "goto") (statement_identifier "LAB_0007855c") (; ";"))) (expression_statement "uVar30 = uVar30 + 1;" (assignment_expression "uVar30 = uVar30 + 1" (identifier "uVar30") (= "=") (binary_expression "uVar30 + 1" (identifier "uVar30") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar16 = pbVar34;" (assignment_expression "pbVar16 = pbVar34" (identifier "pbVar16") (= "=") (identifier "pbVar34")) (; ";")) (expression_statement "param_1 = pbVar28;" (assignment_expression "param_1 = pbVar28" (identifier "param_1") (= "=") (identifier "pbVar28")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar30 != 0x4011)" (( "(") (binary_expression "uVar30 != 0x4011" (identifier "uVar30") (!= "!=") (number_literal "0x4011")) () ")")) (; ";")) (} "}"))) (expression_statement "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc);" (assignment_expression "uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc)" (identifier "uVar41") (= "=") (call_expression "(**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc)" (parenthesized_expression "(**(code **)(pcVar40 + 0x38158))" (( "(") (pointer_expression "**(code **)(pcVar40 + 0x38158)" (* "*") (pointer_expression "*(code **)(pcVar40 + 0x38158)" (* "*") (cast_expression "(code **)(pcVar40 + 0x38158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar40 + 0x38158)" (( "(") (binary_expression "pcVar40 + 0x38158" (identifier "pcVar40") (+ "+") (number_literal "0x38158")) () ")"))))) () ")")) (argument_list "(*(int *)(pcVar40 + 0x38144) + -0x41cc)" (( "(") (binary_expression "*(int *)(pcVar40 + 0x38144) + -0x41cc" (pointer_expression "*(int *)(pcVar40 + 0x38144)" (* "*") (cast_expression "(int *)(pcVar40 + 0x38144)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar40 + 0x38144)" (( "(") (binary_expression "pcVar40 + 0x38144" (identifier "pcVar40") (+ "+") (number_literal "0x38144")) () ")")))) (+ "+") (number_literal "-0x41cc")) () ")")))) (; ";")) (expression_statement "pbVar34 = pbVar16;" (assignment_expression "pbVar34 = pbVar16" (identifier "pbVar34") (= "=") (identifier "pbVar16")) (; ";")) (expression_statement "pbVar25 = pbVar28;" (assignment_expression "pbVar25 = pbVar28" (identifier "pbVar25") (= "=") (identifier "pbVar28")) (; ";")) (goto_statement "goto LAB_000781e4;" (goto "goto") (statement_identifier "LAB_000781e4") (; ";")) (} "}")))

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

void function_1
               (type_1 *cs,type_2 *xc,type_3 *chan,
               type_4 var_5)

{
  type_5 var_17;
  char var_24;
  type_5 bVar3;
  type_5 bVar4;
  type_5 bVar5;
  type_6 var_39;
  type_6 uVar7;
  type_6 uVar8;
  type_6 uVar9;
  type_7 uVar10;
  type_7 uVar11;
  type_7 uVar12;
  bool bVar13;
  type_8 **pppVar14;
  type_8 **pppVar15;
  type_8 *var_6;
  int var_11;
  char *var_54;
  type_4 upstream_id;
  type_9 *psVar19;
  type_10 ppsVar20;
  int var_37;
  int var_38;
  void *var_47;
  type_7 *var_21;
  type_7 *var_41;
  type_3 *var_45;
  type_11 *var_29;
  type_11 *var_30;
  type_12 *psVar28;
  type_13 *var_33;
  type_1 *var_15;
  type_1 *cs_00;
  type_6 var_44;
  type_14 *t;
  type_12 *var_31;
  type_2 *var_48;
  type_1 *var_55;
  type_4 var_43;
  type_6 *var_20;
  type_1 *psVar37;
  type_13 uVar38;
  int var_3;
  type_4 *puVar40;
  type_4 var_42;
  type_4 var_52;
  type_15 *var_2;
  type_3 *unaff_s1;
  int unaff_s2;
  type_1 *psVar43;
  int *unaff_s3;
  type_10 *unaff_s4;
  type_4 *var_12;
  type_4 *var_16;
  type_1 *var_23;
  type_1 *var_14;
  type_6 *var_25;
  type_6 *var_26;
  int var_1;
  type_16 *var_7;
  int *piVar51;
  type_16 *pcVar52;
  type_1 *var_27;
  type_1 *var_19;
  type_1 *psStack_e4;
  type_10 ppsStack_e0;
  type_8 *ppStack_c0;
  int var_13;
  type_2 *psStack_b8;
  type_1 *psStack_b4;
  type_1 *psStack_b0;
  int *piStack_ac;
  type_10 *pppsStack_a8;
  type_1 *psStack_a4;
  type_1 *psStack_a0;
  int iStack_9c;
  type_2 *psStack_98;
  type_16 *pcStack_94;
  type_6 auStack_80 [4];
  int iStack_7c;
  type_16 *var_10;
  type_4 uStack_70;
  type_8 *var_9;
  type_15 *psStack_68;
  type_3 *psStack_64;
  int iStack_60;
  type_16 *pcStack_5c;
  type_6 window_adjust [8];
  
  var_23 = *(type_1 **)(var_1 + 0x38e6c);
  var_2 = xc->msghead;
  var_6 = var_23->fn;
  if (var_2 != (type_15 *)0x0) {
    unaff_s4 = &cs->sock;
    unaff_s3 = &chan->downstream_maxpkt;
    unaff_s2 = *(int *)(var_1 + 0x38ab8) + 0x68e4;
    do {
      var_3 = var_2->datalen;
      var_20 = var_2->data;
      xc->msghead = var_2->next;
      if (3 < var_3) {
        *var_20 = *(type_6 *)&chan->downstream_id;
        var_2->data[1] = (type_6)*(type_17 *)&chan->downstream_id;
        var_2->data[2] = (type_6)(chan->downstream_id >> 8);
        var_2->data[3] = (type_6)chan->downstream_id;
        var_20 = var_2->data;
        var_3 = var_2->datalen;
      }
      var_4
                ((type_1 *)unaff_s4,var_2->type,var_20,var_3,chan,
                 (type_3 *)unaff_s3);
      (**(type_16 **)(&DAT_00038380 + var_1))(var_2);
      var_2 = xc->msghead;
      unaff_s1 = chan;
    } while (var_2 != (type_15 *)0x0);
  }
  window_adjust._0_4_ = xc->server_id;
  var_3 = var_5 - xc->window;
  var_15 = (type_1 *)cs->parent->ssh;
  var_48 = (type_2 *)cs->id;
  window_adjust[4] = (type_6)((type_4)var_3 >> 0x18);
  window_adjust[6] = (type_6)((type_4)var_3 >> 8);
  window_adjust[5] = (type_6)((type_4)var_3 >> 0x10);
  window_adjust[7] = (type_6)var_3;
  (**(type_16 **)(var_1 + 0x38b58))(var_15,var_48,0x5d,window_adjust);
  if (var_6 == var_23->fn) {
    return;
  }
  var_7 = *(type_16 **)(var_1 + 0x38e40);
  pcVar52 = var_49;
  (*var_7)();
  var_10 = var_7 + 0x40180;
  uStack_70 = var_48->server_id;
  psVar37 = (type_1 *)&DAT_00000061;
  var_12 = &uStack_70;
  psVar43 = *(type_1 **)(var_7 + 0x38ccc);
  iStack_7c = *(int *)(var_7 + 0x38200) + -0x4248;
  var_9 = psVar43->fn;
  auStack_80[0] = '\0';
  auStack_80[1] = '\0';
  auStack_80[2] = '\0';
  auStack_80[3] = '\x04';
  psStack_68 = var_2;
  psStack_64 = unaff_s1;
  iStack_60 = unaff_s2;
  pcStack_5c = pcVar52;
  (**(type_16 **)(var_7 + 0x389b8))(var_15->parent->ssh,var_15->id);
  var_48->live = 0;
  cs_00 = var_15;
  var_8(var_15,var_48);
  if (var_9 == psVar43->fn) {
    return;
  }
  var_7 = *(type_16 **)(var_10 + -0x74e0);
  pcVar52 = share_receive;
  (*var_7)();
  var_11 = cs_00->crLine;
  piVar51 = *(int **)(var_7 + 0x38c10);
  var_13 = *piVar51;
  var_14 = cs;
  psStack_b8 = var_48;
  psStack_b4 = var_15;
  psStack_b0 = psVar43;
  piStack_ac = unaff_s3;
  pppsStack_a8 = unaff_s4;
  psStack_a4 = cs;
  psStack_a0 = var_23;
  iStack_9c = var_3;
  psStack_98 = xc;
  pcStack_94 = pcVar52;
  if (var_11 != 0x709) {
    if (0x709 < var_11) {
      var_16 = var_12;
      if (var_11 == 0x72e) goto LAB_000784dc;
      if (var_11 != 0x73b) goto LAB_00078210;
      goto LAB_00078104;
    }
    if (var_11 != 0) goto LAB_00078210;
    cs_00->recvlen = 0;
  }
  if (var_12 == (type_4 *)0x0) {
LAB_000781c4:
    cs_00->crLine = 0x709;
LAB_00078214:
    do {
      if (var_13 == *piVar51) {
        return;
      }
      (**(type_16 **)(var_7 + 0x38be4))();
      var_16 = var_12;
      psVar37 = var_14;
LAB_00078f28:
      ppStack_c0 = var_27->fn;
      var_4
                ((type_1 *)&cs_00->sock,100,&ppStack_c0,4,(type_3 *)0x0,
                 (type_3 *)0xc);
      (**(type_16 **)(var_7 + 0x38124))(var_23);
      cs_00->recvlen = 0;
LAB_000784dc:
      var_15 = (type_1 *)((int)var_16 + (int)(psVar37->recvbuf + -0x20));
      var_14 = psVar37;
      do {
        var_12 = (type_4 *)((int)var_15 + (-1 - (int)var_14));
        if (var_14 == var_15) {
          cs_00->crLine = 0x72e;
          goto LAB_00078214;
        }
        var_3 = cs_00->recvlen;
        psVar37 = (type_1 *)((int)&var_14->fn + 1);
        var_11 = var_3 + 1;
        var_17 = *(type_5 *)&var_14->fn;
        var_52 = (type_4)var_17;
        cs_00->recvlen = var_11;
        cs_00->recvbuf[var_3] = var_17;
        var_14 = psVar37;
      } while (var_11 < 4);
      var_3 = (**(type_16 **)(var_7 + 0x38248))(*(int *)cs_00->recvbuf + 4);
      cs_00->curr_packetlen = var_3;
      var_16 = var_12;
      if (var_3 - 5U < 0x400c) {
        var_23 = (type_1 *)cs_00->recvlen;
        while (var_14 = psVar37, (int)var_23 < var_3) {
LAB_00078104:
          if (var_16 == (type_4 *)0x0) {
            cs_00->crLine = 0x73b;
            var_12 = (type_4 *)0x0;
            goto LAB_00078214;
          }
          var_3 = cs_00->recvlen;
          var_44 = *(type_6 *)&psVar37->fn;
          psVar37 = (type_1 *)((int)&psVar37->fn + 1);
          var_23 = (type_1 *)(var_3 + 1);
          cs_00->recvlen = (int)var_23;
          cs_00->recvbuf[var_3] = var_44;
          var_16 = (type_4 *)((int)var_16 + -1);
          var_3 = cs_00->curr_packetlen;
        }
        var_17 = cs_00->recvbuf[4];
        var_20 = cs_00->recvbuf + 5;
        var_41 = (type_7 *)((int)&var_23[-1].globreq_head + 3);
        if (var_17 != 0x5a) {
          if (var_17 < 0x5b) {
            if (var_17 != 2) {
              if (2 < var_17) {
                if (var_17 == 4) goto LAB_00078844;
                if (var_17 != 0x50) goto LAB_0007878c;
                var_3 = *(int *)(var_7 + 0x38144);
                var_15 = psVar43;
                if ((int)var_41 < 4) goto LAB_0007882c;
                var_15 = (type_1 *)(*(int *)(var_7 + 0x3885c) + 0x6af0);
                var_3 = var_18(var_20,(int)var_41,(char **)&var_19,(int *)0x0);
                var_14 = var_19;
                if ((var_3 == 0) || (var_19 == (type_1 *)0x0))
                goto LAB_00078828;
                var_3 = (**(type_16 **)(var_7 + 0x38c4c))
                                   (var_19,*(int *)(var_7 + 0x380fc) + 0x4860);
                if (var_3 != 0) {
                  var_3 = (**(type_16 **)(var_7 + 0x38c4c))
                                     (var_14,*(int *)(var_7 + 0x380fc) + 0x47cc);
                  pcVar52 = *(type_16 **)(var_7 + 0x38124);
                  psVar43 = var_15;
                  if (var_3 == 0) {
                    (*pcVar52)(var_14);
                    var_3 = var_18(var_20,(int)var_41,(char **)0x0,(int *)&var_19);
                    var_14 = var_19;
                    if (((var_3 != 0) && (-1 < (int)var_19)) &&
                       (var_21 = (type_7 *)((int)&var_19->fn + 1),
                       (int)var_19 < (int)var_41)) {
                      var_27 = (type_1 *)(var_20 + (int)var_19);
                      var_11 = (int)var_41 - (int)var_21;
                      var_24 = *(char *)&var_27->fn;
                      if ((var_11 < 4) ||
                         (var_3 = var_18(var_20 + (int)var_21,var_11,(char **)0x0,
                                                   (int *)&var_19), var_3 == 0)) {
                        var_3 = *(int *)(var_7 + 0x38144);
                        if ((int)var_14 < (int)&var_23[-1].globreq_head) {
                          if (var_11 >= 4) goto LAB_000783d4;
LAB_0007901c:
                          uVar38 = 0x5a7;
                          goto LAB_00079020;
                        }
                      }
                      else {
                        var_14 = (type_1 *)(var_21 + (int)var_19);
                        var_3 = *(int *)(var_7 + 0x38144);
                        if (-1 < (int)var_14) {
                          pcVar52 = *(type_16 **)(var_7 + 0x38158);
                          if ((int)&var_23[-1].globreq_head <= (int)var_14) goto LAB_00078830;
LAB_000783d4:
                          var_3 = var_18(var_20 + (int)var_21,var_11,
                                                   (char **)&var_19,(int *)0x0);
                          psVar43 = var_19;
                          if ((var_3 == 0) ||
                             (var_15 = var_19, var_19 == (type_1 *)0x0))
                          goto LAB_0007901c;
                          var_25 = var_20 + (int)var_14;
                          var_17 = *var_25;
                          bVar3 = var_25[1];
                          bVar4 = var_25[3];
                          bVar5 = var_25[2];
                          var_19 = (type_1 *)
                                       (**(type_16 **)(var_7 + 0x38164))(var_19);
                          psStack_e4 = (type_1 *)
                                       ((type_4)var_17 << 0x18 | (type_4)bVar4 | (type_4)bVar3 << 0x10 |
                                       (type_4)bVar5 << 8);
                          var_23 = (type_1 *)
                                    var_22(cs_00->forwardings,&var_19,(type_18)0x0);
                          (**(type_16 **)(var_7 + 0x38124))(var_19);
                          if (var_23 == (type_1 *)0x0) {
                            pcVar52 = *(type_16 **)(var_7 + 0x38124);
                            if (var_24 != '\0') {
                              var_4
                                        ((type_1 *)&cs_00->sock,0x52,
                                         (void *)(*(int *)(var_7 + 0x380fc) + 0x2d54),0,
                                         (type_3 *)0x0,(type_3 *)0xc);
                              goto LAB_000784c4;
                            }
                          }
                          else {
                            var_24 = *(char *)&var_27->fn;
                            *(type_7 *)&var_27->fn = 1;
                            if (var_24 == '\0') {
                              var_3 = *(int *)(var_7 + 0x38144) + -0x41ec;
                            }
                            else {
                              var_3 = 0;
                            }
                            (**(type_16 **)(var_7 + 0x388fc))
                                      (cs_00->parent->ssh,cs_00->id,0x50,var_20,var_41,var_3);
                            (**(type_16 **)(var_7 + 0x38910))(cs_00->parent->ssh,cs_00);
LAB_000784c4:
                            pcVar52 = *(type_16 **)(var_7 + 0x38124);
                          }
                          (*pcVar52)(psVar43);
                          goto LAB_000784d4;
                        }
                      }
                      goto LAB_0007882c;
                    }
                  }
                  else {
LAB_00079040:
                    (*pcVar52)();
                    var_3 = var_18(var_20,(int)var_41,(char **)0x0,(int *)&var_19);
                    var_15 = psVar43;
                    if (((var_3 != 0) && (-1 < (int)var_19)) &&
                       ((int)var_19 < (int)var_41)) {
                      if (var_20[(int)var_19] == '\0') goto LAB_000784d4;
                      var_4
                                ((type_1 *)&cs_00->sock,0x52,
                                 (void *)(*(int *)(var_7 + 0x380fc) + 0x2d54),0,
                                 (type_3 *)0x0,(type_3 *)0xc);
                      cs_00->recvlen = 0;
                      goto LAB_000784dc;
                    }
                  }
LAB_00078828:
                  var_3 = *(int *)(var_7 + 0x38144);
                  goto LAB_0007882c;
                }
                (**(type_16 **)(var_7 + 0x38124))(var_14);
                var_3 = var_18(var_20,(int)var_41,(char **)0x0,(int *)&var_19);
                psVar43 = var_19;
                if (((var_3 == 0) || ((int)var_19 < 0)) ||
                   (var_21 = (type_7 *)((int)&var_19->fn + 1),
                   (int)var_41 <= (int)var_19)) goto LAB_00078828;
                var_25 = var_20 + (int)var_19;
                var_11 = (int)var_41 - (int)var_21;
                var_27 = (type_1 *)(type_4)*var_25;
                if ((var_11 < 4) ||
                   (var_3 = var_18(var_20 + (int)var_21,var_11,(char **)0x0,
                                             (int *)&var_19), var_3 == 0)) {
                  var_3 = *(int *)(var_7 + 0x38144);
                  if ((int)psVar43 < (int)&var_23[-1].globreq_head) {
                    if (var_11 >= 4) goto LAB_0007918c;
LAB_00079434:
                    uVar38 = 0x55e;
LAB_00079020:
                    pcVar52 = *(type_16 **)(var_7 + 0x38a34);
                    (*pcVar52)(*(int *)(var_7 + 0x38144) + -0x4124,
                               *(int *)(var_7 + 0x38144) + -0x42c4,uVar38,
                               *(int *)(var_7 + 0x38144) + -0x3e30);
                    psVar43 = var_15;
                    goto LAB_00079040;
                  }
LAB_0007882c:
                  pcVar52 = *(type_16 **)(var_7 + 0x38158);
                }
                else {
                  psVar43 = (type_1 *)(var_21 + (int)var_19);
                  var_3 = *(int *)(var_7 + 0x38144);
                  if ((int)psVar43 < 0) goto LAB_0007882c;
                  pcVar52 = *(type_16 **)(var_7 + 0x38158);
                  if ((int)psVar43 < (int)&var_23[-1].globreq_head) {
LAB_0007918c:
                    var_3 = var_18(var_20 + (int)var_21,var_11,(char **)&var_19,
                                             (int *)0x0);
                    var_14 = var_19;
                    if ((var_3 == 0) ||
                       (var_23 = var_19, var_19 == (type_1 *)0x0))
                    goto LAB_00079434;
                    var_26 = var_20 + (int)psVar43;
                    psVar43 = (type_1 *)
                              ((type_4)*var_26 << 0x18 | (type_4)var_26[3] | (type_4)var_26[1] << 0x10
                              | (type_4)var_26[2] << 8);
                    var_3 = (**(type_16 **)(var_7 + 0x38928))
                                       (cs_00->parent->ssh,var_19,psVar43,cs_00);
                    if (var_3 == 0) {
                      if (var_27 != (type_1 *)0x0) {
                        var_4
                                  ((type_1 *)&cs_00->sock,0x52,
                                   (void *)(*(int *)(var_7 + 0x380fc) + 0x2d54),0,
                                   (type_3 *)0x0,(type_3 *)0xc);
                      }
                    }
                    else {
                      var_17 = *var_25;
                      *var_25 = 1;
                      if (var_17 == 0) {
                        var_3 = *(int *)(var_7 + 0x38144) + -0x41ec;
                      }
                      else {
                        var_3 = 0;
                      }
                      (**(type_16 **)(var_7 + 0x388fc))
                                (cs_00->parent->ssh,cs_00->id,0x50,var_20,var_41,var_3);
                      var_29 = (type_11 *)(**(type_16 **)(var_7 + 0x3815c))(1,0xc);
                      var_54 = (char *)(**(type_16 **)(var_7 + 0x38164))(var_14);
                      t = cs_00->forwardings;
                      var_29->host = var_54;
                      var_29->port = (int)psVar43;
                      var_29->active = 0;
                      var_30 = (type_11 *)var_28(t,var_29);
                      if (var_29 == var_30) {
                        (**(type_16 **)(var_7 + 0x38910))(cs_00->parent->ssh,cs_00);
                        psVar28 = (type_12 *)(**(type_16 **)(var_7 + 0x3815c))(1,0x10);
                        var_31 = cs_00->globreq_tail;
                        psVar28->next = (type_12 *)0x0;
                        if (var_31 == (type_12 *)0x0) {
                          cs_00->globreq_head = psVar28;
                        }
                        else {
                          var_31->next = psVar28;
                        }
                        psVar28->fwd = var_29;
                        psVar28->type = 0;
                        psVar28->want_reply = (int)var_27;
                      }
                      else {
                        (**(type_16 **)(var_7 + 0x38124))(var_29);
                        (**(type_16 **)(var_7 + 0x38910))(cs_00->parent->ssh,cs_00);
                      }
                    }
                    (**(type_16 **)(var_7 + 0x38124))(var_14);
                    cs_00->recvlen = 0;
                    var_23 = var_14;
                    goto LAB_000784dc;
                  }
                }
LAB_00078830:
                var_54 = (char *)(*pcVar52)(var_3 + -0x4144);
                psVar43 = var_15;
                goto LAB_000787a4;
              }
              if (var_17 != 1) {
LAB_0007878c:
                var_54 = (char *)(**(type_16 **)(var_7 + 0x38158))
                                            (*(int *)(var_7 + 0x38144) + -0x3f54,var_17);
                goto LAB_000787a4;
              }
              (*(*cs_00->sock)->close)(cs_00->sock);
              cs_00->sock = (type_10)0x0;
              var_32(cs_00);
              cs_00->recvlen = 0;
              goto LAB_000784dc;
            }
LAB_00078844:
            var_21 = (type_7 *)((int)&var_23[-1].forwardings + 3);
            if ((var_17 == 0x62) &&
               (psVar43 = *(type_1 **)(var_7 + 0x3885c), 3 < (int)var_21)) {
              psVar43 = (type_1 *)(psVar43[1].recvbuf + 0x2a7c);
              var_3 = var_18(cs_00->recvbuf + 9,(int)var_21,(char **)&var_19,
                                       (int *)0x0);
              var_15 = var_19;
              if ((var_3 != 0) && (var_19 != (type_1 *)0x0)) {
                var_27 = var_19;
                var_3 = (**(type_16 **)(var_7 + 0x38c4c))
                                   (var_19,*(int *)(var_7 + 0x380fc) + 0x4300);
                if ((var_3 == 0) &&
                   (var_3 = (**(type_16 **)(var_7 + 0x3865c))(cs_00->parent->ssh), var_3 == 0)) {
                  ppsVar20 = *(type_10 *)(cs_00->recvbuf + 5);
                  (**(type_16 **)(var_7 + 0x38124))(var_15);
                  ppsStack_e0 = ppsVar20;
                  var_33 = (type_13 *)
                            var_22(cs_00->channels_by_server,&var_19,(type_18)0x0);
                  if (var_33 == (type_13 *)0x0) {
                    pcVar52 = *(type_16 **)(var_7 + 0x38158);
                    var_3 = *(int *)(var_7 + 0x38144) + -0x3fe8;
LAB_000794d0:
                    var_54 = (char *)(*pcVar52)(var_3,ppsVar20);
                    var_34(cs_00,var_54);
                    (**(type_16 **)(var_7 + 0x38124))(var_54);
                    cs_00->recvlen = 0;
                  }
                  else {
                    ppStack_c0 = (type_8 *)*var_33;
                    var_4
                              ((type_1 *)&cs_00->sock,100,&ppStack_c0,4,
                               (type_3 *)0x0,(type_3 *)0xc);
                    cs_00->recvlen = 0;
                  }
                  goto LAB_000784dc;
                }
                var_3 = *(int *)(var_7 + 0x380fc);
                var_11 = (**(type_16 **)(var_7 + 0x38c4c))(var_15,var_3 + 0x429c);
                if (var_11 != 0) {
                  (**(type_16 **)(var_7 + 0x38124))(var_15);
                  var_27 = var_15;
                  goto LAB_00078df8;
                }
                ppsVar20 = *(type_10 *)(cs_00->recvbuf + 5);
                (**(type_16 **)(var_7 + 0x38124))(var_15);
                ppsStack_e0 = ppsVar20;
                var_27 = (type_1 *)
                              var_22(cs_00->channels_by_server,&var_19,(type_18)0x0);
                if (var_27 == (type_1 *)0x0) {
                  pcVar52 = *(type_16 **)(var_7 + 0x38158);
                  var_3 = *(int *)(var_7 + 0x38144) + -0x3fb0;
                  goto LAB_000794d0;
                }
                if ((int)var_41 < 0x11) {
                  var_54 = (char *)(**(type_16 **)(var_7 + 0x38158))
                                              (*(int *)(var_7 + 0x38144) + -0x3f7c);
                  goto LAB_000787a4;
                }
                var_44 = cs_00->recvbuf[0x14];
                var_21 = (type_7 *)((int)&var_23[-1].channels_by_server + 2);
                var_39 = cs_00->recvbuf[0x15];
                if ((int)var_21 < 4) {
                  var_11 = var_35((char *)0x0);
                  (**(type_16 **)(var_7 + 0x38124))(0);
LAB_0007949c:
                  var_23 = (type_1 *)0xffffffff;
                }
                else {
                  var_11 = var_18(cs_00->recvbuf + 0x16,(int)var_21,(char **)&var_19,
                                           (int *)0x0);
                  var_23 = var_19;
                  if (var_11 == 0) {
                    var_36();
                    return;
                  }
                  var_11 = var_35((char *)var_19);
                  (**(type_16 **)(var_7 + 0x38124))(var_23);
                  var_37 = var_18(cs_00->recvbuf + 0x16,(int)var_21,(char **)0x0,
                                           (int *)&var_19);
                  var_23 = var_19;
                  if (var_37 == 0) goto LAB_0007949c;
                }
                var_25 = (type_6 *)((int)&var_23->crLine + 1);
                var_37 = (int)var_41 - (int)var_25;
                var_23 = (type_1 *)0x0;
                if (var_37 < 4) {
LAB_00078ff4:
                  var_15 = (type_1 *)0xffffffff;
                }
                else {
                  var_38 = var_18(var_20 + (int)var_25,var_37,(char **)&var_19,
                                           (int *)0x0);
                  var_23 = var_19;
                  if (var_38 == 0) {
                    var_23 = (type_1 *)0x0;
                  }
                  var_37 = var_18(var_20 + (int)var_25,var_37,(char **)0x0,
                                           (int *)&var_19);
                  var_15 = var_19;
                  if (var_37 == 0) goto LAB_00078ff4;
                }
                if ((int)var_41 <= (int)(var_25 + (int)var_15 + 3)) {
                  var_54 = (char *)(**(type_16 **)(var_7 + 0x38158))
                                              (*(int *)(var_7 + 0x38144) + -0x3f7c);
                  (**(type_16 **)(var_7 + 0x38124))(var_23);
                  goto LAB_000787a4;
                }
                var_20 = var_20 + (int)(var_25 + (int)var_15);
                if (-1 < var_11) {
                  uVar7 = *var_20;
                  bVar13 = var_39 != '\0';
                  var_39 = var_20[1];
                  uVar8 = var_20[3];
                  uVar9 = var_20[2];
                  var_27->got_verstring = var_11;
                  var_47 = var_40((char *)var_23,(int *)var_27->recvbuf);
                  pcVar52 = *(type_16 **)(var_7 + 0x38124);
                  var_27->curr_packetlen = (int)var_47;
                  (*pcVar52)(var_23);
                  var_11 = (**(type_16 **)(var_7 + 0x38920))
                                     (cs_00->parent->ssh,var_11,cs_00,var_27);
                  var_27->sent_verstring = var_11;
                  *(type_4 *)(var_27->recvbuf + 4) = (type_4)bVar13;
                  psVar43 = (type_1 *)
                            (**(type_16 **)(var_7 + 0x38b58))(*(type_13 *)(var_11 + 0xc));
                  var_23 = (type_1 *)
                            (**(type_16 **)(var_7 + 0x38b58))(*(type_13 *)(var_11 + 0x10));
                  var_20 = (type_6 *)((int)&psVar43->curr_packetlen + 1) + (int)var_23;
                  var_21 = (type_7 *)(**(type_16 **)(var_7 + 0x3815c))(var_20,1);
                  var_21[4] = 0;
                  var_21[5] = 0;
                  var_43 = *(type_4 *)(var_3 + 0x429c);
                  uVar10 = *(type_7 *)(var_3 + 0x42a0);
                  uVar11 = *(type_7 *)(var_3 + 0x42a1);
                  uVar12 = *(type_7 *)(var_3 + 0x42a2);
                  var_21[3] = (char)ppsVar20;
                  *var_21 = (char)((type_4)ppsVar20 >> 0x18);
                  var_21[1] = (char)((type_4)ppsVar20 >> 0x10);
                  var_21[2] = (char)((type_4)ppsVar20 >> 8);
                  var_21[7] = 7;
                  var_21[6] = 0;
                  var_41 = var_21 + 8;
                  var_42 = (type_4)var_41 & 3;
                  *(type_4 *)(var_41 + -var_42) =
                       *(type_4 *)(var_41 + -var_42) & -1 << (4 - var_42) * 8 | var_43 >> var_42 * 8;
                  var_41 = var_21 + 0xb;
                  var_42 = (type_4)var_41 & 3;
                  *(type_4 *)(var_41 + -var_42) =
                       *(type_4 *)(var_41 + -var_42) & 0xffffffffU >> (var_42 + 1) * 8 |
                       var_43 << (3 - var_42) * 8;
                  var_21[0xc] = uVar10;
                  var_21[0xd] = uVar11;
                  var_21[0xe] = uVar12;
                  var_21[0x10] = bVar13;
                  var_21[0x11] = (char)((type_4)psVar43 >> 0x18);
                  var_21[0x12] = (char)((type_4)psVar43 >> 0x10);
                  var_21[0x13] = (char)((type_4)psVar43 >> 8);
                  var_21[0x14] = (char)psVar43;
                  pcVar52 = *(type_16 **)(var_7 + 0x38c14);
                  var_21[0xf] = var_44 != '\0';
                  (*pcVar52)(var_21 + 0x15,*(type_13 *)(var_27->sent_verstring + 0xc),
                             psVar43);
                  var_41 = var_21 + (int)psVar43;
                  var_41[0x15] = (char)((type_4)var_23 >> 0x18);
                  var_41[0x16] = (char)((type_4)var_23 >> 0x10);
                  var_41[0x17] = (char)((type_4)var_23 >> 8);
                  var_41[0x18] = (char)var_23;
                  (**(type_16 **)(var_7 + 0x38c14))
                            (var_21 + (int)((int)&psVar43->got_verstring + 1),
                             *(type_13 *)(var_27->sent_verstring + 0x10),var_23);
                  var_41 = var_21 + (int)(var_23->recvbuf + (int)(psVar43->recvbuf + -0x40));
                  var_41[0x1c] = uVar8;
                  var_41[0x19] = uVar7;
                  var_41[0x1a] = var_39;
                  var_41[0x1b] = uVar9;
                  (**(type_16 **)(var_7 + 0x388fc))
                            (cs_00->parent->ssh,cs_00->id,0x62,var_21,var_20,0);
                  (**(type_16 **)(var_7 + 0x38124))(var_21);
                  cs_00->recvlen = 0;
                  goto LAB_000784dc;
                }
                goto LAB_00078f28;
              }
            }
LAB_00078df8:
            (**(type_16 **)(var_7 + 0x388fc))(cs_00->parent->ssh,cs_00->id,var_17,var_20,var_41,0);
            if ((var_17 == 0x61) && (3 < (int)var_41)) {
              ppsStack_e0 = *(type_10 *)(cs_00->recvbuf + 5);
              var_45 = (type_3 *)
                        var_22(cs_00->channels_by_server,&var_19,(type_18)0x0);
              if (var_45 != (type_3 *)0x0) {
                if (var_45->state == 2) {
                  (**(type_16 **)(var_7 + 0x38900))(cs_00->parent->ssh,var_45->upstream_id);
                  var_46(cs_00,var_45);
                  cs_00->recvlen = 0;
                }
                else {
                  var_45->state = 1;
                  cs_00->recvlen = 0;
                }
                goto LAB_000784dc;
              }
            }
          }
          else {
            if (var_17 == 0x5c) {
              if (3 < (int)var_41) {
                psVar43 = *(type_1 **)(cs_00->recvbuf + 5);
                var_23 = (type_1 *)&var_19;
                var_19 = psVar43;
                var_47 = var_22(cs_00->halfchannels,var_23,(type_18)0x0);
                if (var_47 == (void *)0x0) {
                  psStack_e4 = psVar43;
                  var_48 = (type_2 *)
                            var_22(cs_00->xchannels_by_server,var_23,(type_18)0x0);
                  if (var_48 == (type_2 *)0x0) {
                    var_54 = (char *)(**(type_16 **)(var_7 + 0x38158))
                                                (*(int *)(var_7 + 0x38144) + -0x4020,psVar43);
                    goto LAB_000787a4;
                  }
                  var_49(cs_00,var_48);
                  cs_00->recvlen = 0;
                }
                else {
                  psVar19 = cs_00->parent;
                  uVar38 = 0x5c;
LAB_000786e4:
                  (**(type_16 **)(var_7 + 0x388fc))(psVar19->ssh,cs_00->id,uVar38,var_20,var_41,0);
                  var_50(cs_00->halfchannels,var_47);
                  (**(type_16 **)(var_7 + 0x38124))(var_47);
                  cs_00->recvlen = 0;
                }
                goto LAB_000784dc;
              }
              var_54 = (char *)(**(type_16 **)(var_7 + 0x38158))
                                          (*(int *)(var_7 + 0x38144) + -0x4048);
              goto LAB_000787a4;
            }
            if (0x5b < var_17) {
              if (100 < var_17) goto LAB_0007878c;
              goto LAB_00078844;
            }
            if ((int)var_41 < 0x10) {
              var_54 = (char *)(**(type_16 **)(var_7 + 0x38158))
                                          (*(int *)(var_7 + 0x38144) + -0x40f4);
              goto LAB_000787a4;
            }
            var_42 = (type_4)(cs_00->recvbuf + 5) & 3;
            upstream_id = *(type_4 *)(cs_00->recvbuf + 9);
            var_43 = (type_4)(cs_00->recvbuf + 8) & 3;
            psVar43 = (type_1 *)
                      ((*(int *)(cs_00->recvbuf + 5 + -var_42) << var_42 * 8 |
                       (type_4)psVar43 & 0xffffffffU >> (4 - var_42) * 8) & -1 << (var_43 + 1) * 8 |
                      *(type_4 *)(cs_00->recvbuf + 8 + -var_43) >> (3 - var_43) * 8);
            var_19 = psVar43;
            var_47 = var_22(cs_00->halfchannels,&var_19,(type_18)0x0);
            if (var_47 == (void *)0x0) {
              psStack_e4 = psVar43;
              var_23 = (type_1 *)
                        var_22(cs_00->xchannels_by_server,&var_19,(type_18)0x0);
              if (var_23 == (type_1 *)0x0) goto LAB_0007927c;
              var_6 = var_23->fn;
            }
            else {
              var_23 = (type_1 *)0x0;
              var_6 = (type_8 *)
                        (**(type_16 **)(var_7 + 0x38914))(cs_00->parent->ssh,cs_00);
            }
            cs_00->recvbuf[0xc] = (type_6)var_6;
            cs_00->recvbuf[9] = (type_6)((type_4)var_6 >> 0x18);
            cs_00->recvbuf[10] = (type_6)((type_4)var_6 >> 0x10);
            cs_00->recvbuf[0xb] = (type_6)((type_4)var_6 >> 8);
            var_42 = (type_4)(cs_00->recvbuf + 0x11) & 3;
            var_43 = (type_4)(cs_00->recvbuf + 0x14) & 3;
            var_45 = var_51((type_1 *)&cs_00->channels_by_us,
                                        (type_4)&cs_00->channels_by_server,upstream_id,(type_4)var_6,
                                        (int)psVar43,0,
                                        (type_1 *)
                                        ((*(int *)(cs_00->recvbuf + 0x11 + -var_42) << var_42 * 8 |
                                         var_52 & 0xffffffffU >> (4 - var_42) * 8) &
                                         -1 << (var_43 + 1) * 8 |
                                        *(type_4 *)(cs_00->recvbuf + 0x14 + -var_43) >>
                                        (3 - var_43) * 8));
            if (var_47 != (void *)0x0) {
              psVar19 = cs_00->parent;
              uVar38 = 0x5b;
              goto LAB_000786e4;
            }
            if (var_23 != (type_1 *)0x0) {
              var_42 = *(type_4 *)(cs_00->recvbuf + 0xd);
              if (var_42 < 0x100) {
                var_54 = (char *)(**(type_16 **)(var_7 + 0x38158))
                                            (*(int *)(var_7 + 0x38144) + -0x408c,var_42);
                goto LAB_000787a4;
              }
              function_1(cs_00,(type_2 *)var_23,var_45,var_42);
              var_53
                        ((type_1 *)cs_00->xchannels_by_us,
                         (type_2 *)&cs_00->xchannels_by_server,var_23);
              cs_00->recvlen = 0;
              goto LAB_000784dc;
            }
          }
LAB_000784d4:
          cs_00->recvlen = 0;
          goto LAB_000784dc;
        }
        var_3 = *(int *)(var_7 + 0x38144);
        if (3 < (int)var_41) {
          var_3 = var_18(var_20,(int)var_41,(char **)0x0,(int *)&var_19);
          if (((var_3 == 0) || ((int)var_19 < 0)) ||
             (psVar43 = (type_1 *)(var_20 + (int)var_19),
             (int)&var_23[-1].xchannels_by_server <= (int)var_19)) {
            var_3 = *(int *)(var_7 + 0x38144);
            goto LAB_00078e80;
          }
          pppVar14 = &var_19->fn;
          pppVar15 = &var_19->fn;
          var_27 = (type_1 *)(var_20 + (int)((int)&var_19->fn + 2));
          var_23 = (type_1 *)
                    ((type_4)*(type_5 *)&psVar43->fn << 0x18 |
                     (type_4)var_20[(int)((int)pppVar14 + 1)] << 0x10 |
                     (type_4)var_20[(int)((int)pppVar15 + 3)] | (type_4)*(type_5 *)&var_27->fn << 8)
          ;
          var_42 = (**(type_16 **)(var_7 + 0x38914))(cs_00->parent->ssh,cs_00);
          var_51((type_1 *)&cs_00->channels_by_us,
                            (type_4)&cs_00->channels_by_server,(type_4)var_23,var_42,0,3,
                            (type_1 *)
                            ((type_4)*(type_5 *)&psVar43->sock << 0x18 |
                             (type_4)*(type_6 *)((int)&psVar43->sock + 1) << 0x10 |
                             (type_4)*(type_6 *)((int)&psVar43->sock + 3) |
                            (type_4)*(type_6 *)((int)&psVar43->sock + 2) << 8));
          *(char *)&psVar43->fn = (char)(var_42 >> 0x18);
          var_20[(int)((int)pppVar14 + 1)] = (type_5)(var_42 >> 0x10);
          *(char *)&var_27->fn = (char)(var_42 >> 8);
          var_20[(int)((int)pppVar15 + 3)] = (type_5)var_42;
          (**(type_16 **)(var_7 + 0x388fc))(cs_00->parent->ssh,cs_00->id,0x5a,var_20,var_41,0);
          cs_00->recvlen = 0;
          goto LAB_000784dc;
        }
LAB_00078e80:
        var_54 = (char *)(**(type_16 **)(var_7 + 0x38158))(var_3 + -0x4114);
LAB_000787a4:
        while (var_54 == (char *)0x0) {
          (**(type_16 **)(var_7 + 0x38a34))
                    (*(int *)(var_7 + 0x38144) + -0x3f38,*(int *)(var_7 + 0x38144) + -0x42c4,
                     0x6e6,*(int *)(var_7 + 0x38144) + -0x3e30);
LAB_0007927c:
          var_54 = (char *)(**(type_16 **)(var_7 + 0x38158))
                                      (*(int *)(var_7 + 0x38144) + -0x40c8,psVar43);
        }
        var_34(cs_00,var_54);
        (**(type_16 **)(var_7 + 0x38124))(var_54);
        cs_00->recvlen = 0;
        goto LAB_000784dc;
      }
      var_54 = (char *)(**(type_16 **)(var_7 + 0x38158))
                                  (*(int *)(var_7 + 0x38144) + -0x415c,var_3);
LAB_000781e4:
      var_34(cs_00,var_54);
      (**(type_16 **)(var_7 + 0x38124))(var_54);
      var_12 = var_16;
      var_14 = psVar37;
LAB_00078210:
      cs_00->crLine = 0;
    } while( true );
  }
  var_42 = cs_00->recvlen;
  var_44 = *(type_6 *)&psVar37->fn;
  puVar40 = (type_4 *)((int)var_12 + -1);
  var_15 = (type_1 *)((int)&psVar37->fn + 1);
  var_16 = puVar40;
  if (var_44 == '\n') {
LAB_0007855c:
    psVar37 = var_15;
    if (0x2d < var_42) {
      psVar43 = (type_1 *)cs_00->recvbuf;
      var_3 = (**(type_16 **)(var_7 + 0x38bf8))(psVar43,*(int *)(var_7 + 0x38144) + -0x3e10,0x2e);
      if (var_3 == 0) {
        if ((0 < (int)var_42) && (cs_00->recvbuf[var_42 - 1] == '\r')) {
          cs_00->recvlen = var_42 - 1;
          var_42 = var_42 - 1;
        }
        (**(type_16 **)(var_7 + 0x388f4))
                  (cs_00->parent->ssh,cs_00->id,*(int *)(var_7 + 0x38144) + -0x417c,var_42,psVar43
                  );
        cs_00->got_verstring = 1;
        cs_00->recvlen = 0;
        goto LAB_000784dc;
      }
    }
    var_54 = (char *)(**(type_16 **)(var_7 + 0x38158))(*(int *)(var_7 + 0x38144) + -0x41ac);
    goto LAB_000781e4;
  }
  var_55 = (type_1 *)((int)var_12 + (int)(psVar37->recvbuf + -0x20));
  if (var_42 < 0x4010) {
    var_42 = var_42 + 1;
    var_14 = var_15;
    do {
      cs_00->recvlen = var_42;
      cs_00->recvbuf[var_42 - 1] = var_44;
      if (var_55 == var_14) goto LAB_000781c4;
      var_12 = (type_4 *)((int)puVar40 + ((int)psVar37 - (int)var_14));
      var_15 = (type_1 *)((int)&var_14->fn + 1);
      var_44 = *(type_6 *)&var_14->fn;
      var_16 = var_12;
      if (var_44 == '\n') goto LAB_0007855c;
      var_42 = var_42 + 1;
      var_14 = var_15;
    } while (var_42 != 0x4011);
  }
  var_54 = (char *)(**(type_16 **)(var_7 + 0x38158))(*(int *)(var_7 + 0x38144) + -0x41cc);
  var_16 = var_12;
  psVar37 = var_15;
  goto LAB_000781e4;
}


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

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

{
  byte bVar1;
  byte bVar2;
  byte bVar3;
  byte bVar4;
  char cVar5;
  char cVar6;
  undefined1 uVar7;
  undefined1 uVar8;
  undefined1 uVar9;
  bool bVar10;
  int iVar11;
  byte ****ppppbVar12;
  int iVar13;
  byte ****ppppbVar14;
  undefined1 *puVar15;
  byte *pbVar16;
  undefined4 *puVar17;
  int iVar18;
  byte bVar21;
  undefined4 uVar19;
  undefined4 *puVar20;
  int iVar22;
  uint uVar23;
  undefined1 *puVar24;
  byte *pbVar25;
  byte *pbVar26;
  int iVar27;
  uint in_t3;
  byte *pbVar28;
  undefined4 *puVar29;
  uint uVar30;
  byte *pbVar31;
  undefined4 *unaff_s1;
  undefined *unaff_s2;
  byte *****pppppbVar32;
  byte *****pppppbVar33;
  undefined4 *unaff_s3;
  byte *unaff_s4;
  byte *pbVar34;
  byte *****pppppbVar35;
  byte *****pppppbVar36;
  undefined *puVar37;
  code *pcVar38;
  int *piVar39;
  code *pcVar40;
  undefined4 uVar41;
  byte ****ppppbStack_108;
  byte ****ppppbStack_e8;
  byte ****ppppbStack_e4;
  undefined4 uStack_e0;
  byte ***pppbStack_c0;
  int iStack_bc;
  int iStack_b8;
  int iStack_b4;
  byte ****ppppbStack_b0;
  undefined4 *puStack_ac;
  byte *pbStack_a8;
  byte *pbStack_a4;
  undefined *puStack_a0;
  int iStack_9c;
  int iStack_98;
  undefined4 uStack_94;
  undefined4 uStack_80;
  int iStack_7c;
  undefined *puStack_78;
  undefined4 uStack_70;
  byte ***pppbStack_6c;
  undefined4 *puStack_68;
  undefined4 *puStack_64;
  undefined *puStack_60;
  code *pcStack_5c;
  undefined4 *local_48;
  undefined4 *local_44;
  undefined4 local_34;
  undefined1 local_30;
  undefined1 local_2f;
  undefined1 local_2e;
  undefined1 local_2d;
  int local_2c;
  
  pppppbVar35 = (byte *****)PTR___stack_chk_guard_000b0c9c;
  puVar29 = *(undefined4 **)(param_2 + 0x10);
  local_2c = *(int *)PTR___stack_chk_guard_000b0c9c;
  if (puVar29 != (undefined4 *)0x0) {
    unaff_s4 = param_1 + 8;
    unaff_s3 = param_3 + 3;
    unaff_s2 = PTR_LAB_000b08e8 + 0x68e4;
    do {
      iVar27 = puVar29[3];
      puVar24 = (undefined1 *)puVar29[2];
      *(undefined4 *)(param_2 + 0x10) = *puVar29;
      if (3 < iVar27) {
        *puVar24 = *(undefined1 *)param_3;
        *(char *)(puVar29[2] + 1) = (char)*(undefined2 *)param_3;
        *(char *)(puVar29[2] + 2) = (char)((uint)*param_3 >> 8);
        *(char *)(puVar29[2] + 3) = (char)*param_3;
        puVar24 = (undefined1 *)puVar29[2];
        iVar27 = puVar29[3];
      }
      local_48 = param_3;
      local_44 = unaff_s3;
      FUN_000768e4(unaff_s4,puVar29[1],puVar24,iVar27);
      (*(code *)PTR_safefree_000b01b0)(puVar29);
      puVar29 = *(undefined4 **)(param_2 + 0x10);
      unaff_s1 = param_3;
    } while (puVar29 != (undefined4 *)0x0);
  }
  local_34 = *(undefined4 *)(param_2 + 4);
  param_4 = param_4 - *(int *)(param_2 + 0xc);
  iVar27 = *(int *)(*(int *)(param_1 + 0xc) + 0x14);
  local_44 = (undefined4 *)(PTR_DAT_000b01d0 + -0x4224);
  iVar22 = *(int *)(param_1 + 4);
  local_30 = (undefined1)((uint)param_4 >> 0x18);
  local_2e = (undefined1)((uint)param_4 >> 8);
  local_48 = (undefined4 *)0x8;
  local_2f = (undefined1)((uint)param_4 >> 0x10);
  local_2d = (undefined1)param_4;
  (*(code *)PTR_ssh_send_packet_from_downstream_000b0988)(iVar27,iVar22,0x5d,&local_34);
  if ((byte ****)local_2c == *pppppbVar35) {
    return;
  }
  pcVar40 = share_xchannel_failure;
  puVar37 = PTR___stack_chk_fail_000b0c70;
  (*(code *)PTR___stack_chk_fail_000b0c70)();
  puStack_78 = puVar37 + 0x40180;
  uStack_70 = *(undefined4 *)(iVar22 + 4);
  pbVar25 = &DAT_00000061;
  pbVar31 = (byte *)&uStack_70;
  pppppbVar32 = *(byte ******)(puVar37 + 0x38ccc);
  iStack_7c = *(int *)(puVar37 + 0x38200) + -0x4248;
  pppbStack_6c = (byte ***)*pppppbVar32;
  uStack_80 = 4;
  puStack_68 = puVar29;
  puStack_64 = unaff_s1;
  puStack_60 = unaff_s2;
  pcStack_5c = pcVar40;
  (**(code **)(puVar37 + 0x389b8))
            (*(undefined4 *)(*(int *)(iVar27 + 0xc) + 0x14),*(undefined4 *)(iVar27 + 4));
  *(undefined4 *)(iVar22 + 8) = 0;
  iVar18 = iVar27;
  share_dead_xchannel_respond(iVar27,iVar22);
  if ((byte ****)pppbStack_6c == *pppppbVar32) {
    return;
  }
  pcVar40 = *(code **)(puStack_78 + -0x74e0);
  uVar41 = 0x7808c;
  (*pcVar40)();
  iVar11 = *(int *)(iVar18 + 0x10);
  piVar39 = *(int **)(pcVar40 + 0x38c10);
  puStack_a0 = (undefined *)pppppbVar35;
  iStack_bc = *piVar39;
  pbVar34 = pbVar31;
  iStack_b8 = iVar22;
  iStack_b4 = iVar27;
  ppppbStack_b0 = (byte ****)pppppbVar32;
  puStack_ac = unaff_s3;
  pbStack_a8 = unaff_s4;
  pbStack_a4 = param_1;
  iStack_9c = param_4;
  iStack_98 = param_2;
  uStack_94 = uVar41;
  if (iVar11 != 0x709) {
    if (0x709 < iVar11) {
      if (iVar11 == 0x72e) goto LAB_000784dc;
      if (iVar11 != 0x73b) goto LAB_00078210;
      goto LAB_00078104;
    }
    if (iVar11 != 0) goto LAB_00078210;
    *(undefined4 *)(iVar18 + 0x4030) = 0;
  }
  if (pbVar31 == (byte *)0x0) {
LAB_000781c4:
    *(undefined4 *)(iVar18 + 0x10) = 0x709;
LAB_00078214:
    do {
      if (iStack_bc == *piVar39) {
        return;
      }
      (**(code **)(pcVar40 + 0x38be4))();
      pbVar25 = param_1;
LAB_00078f28:
      pppbStack_c0 = *ppppbStack_108;
      FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);
      (**(code **)(pcVar40 + 0x38124))(pppppbVar35);
      *(undefined4 *)(iVar18 + 0x4030) = 0;
LAB_000784dc:
      pbVar31 = pbVar25 + (int)pbVar34;
      param_1 = pbVar25;
      do {
        pbVar34 = pbVar31 + (-1 - (int)param_1);
        if (param_1 == pbVar31) {
          *(undefined4 *)(iVar18 + 0x10) = 0x72e;
          goto LAB_00078214;
        }
        iVar27 = *(int *)(iVar18 + 0x4030);
        pbVar25 = param_1 + 1;
        iVar22 = iVar27 + 1;
        bVar21 = *param_1;
        in_t3 = (uint)bVar21;
        *(int *)(iVar18 + 0x4030) = iVar22;
        *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;
        param_1 = pbVar25;
      } while (iVar22 < 4);
      iVar27 = (**(code **)(pcVar40 + 0x38248))(*(int *)(iVar18 + 0x20) + 4);
      *(int *)(iVar18 + 0x1c) = iVar27;
      if (iVar27 - 5U < 0x400c) {
        pppppbVar35 = *(byte ******)(iVar18 + 0x4030);
        while (param_1 = pbVar25, (int)pppppbVar35 < iVar27) {
LAB_00078104:
          if (pbVar34 == (byte *)0x0) {
            *(undefined4 *)(iVar18 + 0x10) = 0x73b;
            pbVar34 = (byte *)0x0;
            goto LAB_00078214;
          }
          iVar27 = *(int *)(iVar18 + 0x4030);
          pbVar34 = pbVar34 + -1;
          bVar21 = *pbVar25;
          pbVar25 = pbVar25 + 1;
          pppppbVar35 = (byte *****)(iVar27 + 1);
          *(byte ******)(iVar18 + 0x4030) = pppppbVar35;
          *(byte *)(iVar18 + iVar27 + 0x20) = bVar21;
          iVar27 = *(int *)(iVar18 + 0x1c);
        }
        bVar21 = *(byte *)(iVar18 + 0x24);
        iVar27 = iVar18 + 0x25;
        pbVar31 = (byte *)((int)pppppbVar35 + -5);
        if (bVar21 != 0x5a) {
          if (bVar21 < 0x5b) {
            if (bVar21 != 2) {
              if (2 < bVar21) {
                if (bVar21 == 4) goto LAB_00078844;
                if (bVar21 != 0x50) goto LAB_0007878c;
                iVar22 = *(int *)(pcVar40 + 0x38144);
                pppppbVar33 = pppppbVar32;
                if ((int)pbVar31 < 4) goto LAB_0007882c;
                pppppbVar33 = (byte *****)(*(int *)(pcVar40 + 0x3885c) + 0x6af0);
                iVar22 = FUN_00076af0(iVar27,pbVar31,&ppppbStack_e8,0);
                ppppbVar12 = ppppbStack_e8;
                if ((iVar22 == 0) || ((byte *****)ppppbStack_e8 == (byte *****)0x0))
                goto LAB_00078828;
                iVar22 = (**(code **)(pcVar40 + 0x38c4c))
                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4860);
                if (iVar22 != 0) {
                  iVar22 = (**(code **)(pcVar40 + 0x38c4c))
                                     (ppppbVar12,*(int *)(pcVar40 + 0x380fc) + 0x47cc);
                  pcVar38 = *(code **)(pcVar40 + 0x38124);
                  pppppbVar32 = pppppbVar33;
                  if (iVar22 == 0) {
                    (*pcVar38)(ppppbVar12);
                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);
                    pppppbVar36 = (byte *****)ppppbStack_e8;
                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&
                       (pbVar28 = (byte *)((int)ppppbStack_e8 + 1),
                       (int)ppppbStack_e8 < (int)pbVar31)) {
                      ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar27);
                      iVar11 = (int)pbVar31 - (int)pbVar28;
                      bVar21 = *(byte *)ppppbStack_108;
                      if ((iVar11 < 4) ||
                         (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8),
                         iVar22 == 0)) {
                        iVar22 = *(int *)(pcVar40 + 0x38144);
                        if ((int)pppppbVar36 < (int)(pppppbVar35 + -2)) {
                          if (iVar11 >= 4) goto LAB_000783d4;
LAB_0007901c:
                          uVar41 = 0x5a7;
                          goto LAB_00079020;
                        }
                      }
                      else {
                        pppppbVar36 = (byte *****)(pbVar28 + (int)ppppbStack_e8);
                        iVar22 = *(int *)(pcVar40 + 0x38144);
                        if (-1 < (int)pppppbVar36) {
                          pcVar38 = *(code **)(pcVar40 + 0x38158);
                          if ((int)(pppppbVar35 + -2) <= (int)pppppbVar36) goto LAB_00078830;
LAB_000783d4:
                          iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);
                          pppppbVar32 = (byte *****)ppppbStack_e8;
                          if ((iVar22 == 0) ||
                             (pppppbVar33 = (byte *****)ppppbStack_e8,
                             (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_0007901c;
                          pbVar28 = (byte *)((int)pppppbVar36 + iVar27);
                          bVar1 = *pbVar28;
                          bVar2 = pbVar28[1];
                          bVar3 = pbVar28[3];
                          bVar4 = pbVar28[2];
                          ppppbStack_e8 = (byte ****)(**(code **)(pcVar40 + 0x38164))(ppppbStack_e8)
                          ;
                          ppppbStack_e4 =
                               (byte ****)
                               ((uint)bVar1 << 0x18 | (uint)bVar3 | (uint)bVar2 << 0x10 |
                               (uint)bVar4 << 8);
                          pppppbVar35 = (byte *****)
                                        find234(*(undefined4 *)(iVar18 + 0x4048),&ppppbStack_e8,0);
                          (**(code **)(pcVar40 + 0x38124))(ppppbStack_e8);
                          if (pppppbVar35 == (byte *****)0x0) {
                            pcVar38 = *(code **)(pcVar40 + 0x38124);
                            if (bVar21 != 0) {
                              FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,
                                           0xc);
                              goto LAB_000784c4;
                            }
                          }
                          else {
                            bVar21 = *(byte *)ppppbStack_108;
                            *(byte *)ppppbStack_108 = 1;
                            if (bVar21 == 0) {
                              iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;
                            }
                            else {
                              iVar22 = 0;
                            }
                            (**(code **)(pcVar40 + 0x388fc))
                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),
                                       *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);
                            (**(code **)(pcVar40 + 0x38910))
                                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);
LAB_000784c4:
                            pcVar38 = *(code **)(pcVar40 + 0x38124);
                          }
                          (*pcVar38)(pppppbVar32);
                          goto LAB_000784d4;
                        }
                      }
                      goto LAB_0007882c;
                    }
                  }
                  else {
LAB_00079040:
                    (*pcVar38)();
                    iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);
                    pppppbVar33 = pppppbVar32;
                    if (((iVar22 != 0) && (-1 < (int)ppppbStack_e8)) &&
                       ((int)ppppbStack_e8 < (int)pbVar31)) {
                      if (*(byte *)((int)ppppbStack_e8 + iVar27) == 0) goto LAB_000784d4;
                      FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);
                      *(undefined4 *)(iVar18 + 0x4030) = 0;
                      goto LAB_000784dc;
                    }
                  }
LAB_00078828:
                  iVar22 = *(int *)(pcVar40 + 0x38144);
                  goto LAB_0007882c;
                }
                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);
                iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);
                pppppbVar32 = (byte *****)ppppbStack_e8;
                if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||
                   (pbVar28 = (byte *)((int)ppppbStack_e8 + 1), (int)pbVar31 <= (int)ppppbStack_e8))
                goto LAB_00078828;
                pbVar16 = (byte *)((int)ppppbStack_e8 + iVar27);
                iVar11 = (int)pbVar31 - (int)pbVar28;
                ppppbStack_108 = (byte ****)(uint)*pbVar16;
                if ((iVar11 < 4) ||
                   (iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8), iVar22 == 0)) {
                  iVar22 = *(int *)(pcVar40 + 0x38144);
                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {
                    if (iVar11 >= 4) goto LAB_0007918c;
LAB_00079434:
                    uVar41 = 0x55e;
LAB_00079020:
                    pcVar38 = *(code **)(pcVar40 + 0x38a34);
                    (*pcVar38)(*(int *)(pcVar40 + 0x38144) + -0x4124,
                               *(int *)(pcVar40 + 0x38144) + -0x42c4,uVar41,
                               *(int *)(pcVar40 + 0x38144) + -0x3e30);
                    pppppbVar32 = pppppbVar33;
                    goto LAB_00079040;
                  }
LAB_0007882c:
                  pcVar38 = *(code **)(pcVar40 + 0x38158);
                }
                else {
                  pppppbVar32 = (byte *****)(pbVar28 + (int)ppppbStack_e8);
                  iVar22 = *(int *)(pcVar40 + 0x38144);
                  if ((int)pppppbVar32 < 0) goto LAB_0007882c;
                  pcVar38 = *(code **)(pcVar40 + 0x38158);
                  if ((int)pppppbVar32 < (int)(pppppbVar35 + -2)) {
LAB_0007918c:
                    iVar22 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);
                    ppppbVar12 = ppppbStack_e8;
                    if ((iVar22 == 0) ||
                       (pppppbVar35 = (byte *****)ppppbStack_e8,
                       (byte *****)ppppbStack_e8 == (byte *****)0x0)) goto LAB_00079434;
                    pbVar28 = (byte *)((int)pppppbVar32 + iVar27);
                    pppppbVar32 = (byte *****)
                                  ((uint)*pbVar28 << 0x18 | (uint)pbVar28[3] |
                                   (uint)pbVar28[1] << 0x10 | (uint)pbVar28[2] << 8);
                    iVar22 = (**(code **)(pcVar40 + 0x38928))
                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbStack_e8
                                        ,pppppbVar32,iVar18);
                    if (iVar22 == 0) {
                      if ((byte *****)ppppbStack_108 != (byte *****)0x0) {
                        FUN_000768e4(iVar18 + 8,0x52,*(int *)(pcVar40 + 0x380fc) + 0x2d54,0,0,0xc);
                      }
                    }
                    else {
                      bVar21 = *pbVar16;
                      *pbVar16 = 1;
                      if (bVar21 == 0) {
                        iVar22 = *(int *)(pcVar40 + 0x38144) + -0x41ec;
                      }
                      else {
                        iVar22 = 0;
                      }
                      (**(code **)(pcVar40 + 0x388fc))
                                (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),
                                 *(undefined4 *)(iVar18 + 4),0x50,iVar27,pbVar31,iVar22);
                      puVar29 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0xc);
                      uVar41 = (**(code **)(pcVar40 + 0x38164))(ppppbVar12);
                      uVar19 = *(undefined4 *)(iVar18 + 0x4048);
                      *puVar29 = uVar41;
                      puVar29[1] = pppppbVar32;
                      puVar29[2] = 0;
                      puVar17 = (undefined4 *)add234(uVar19,puVar29);
                      if (puVar29 == puVar17) {
                        (**(code **)(pcVar40 + 0x38910))
                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);
                        puVar17 = (undefined4 *)(**(code **)(pcVar40 + 0x3815c))(1,0x10);
                        puVar20 = *(undefined4 **)(iVar18 + 0x4050);
                        *puVar17 = 0;
                        if (puVar20 == (undefined4 *)0x0) {
                          *(undefined4 **)(iVar18 + 0x404c) = puVar17;
                        }
                        else {
                          *puVar20 = puVar17;
                        }
                        puVar17[3] = puVar29;
                        puVar17[1] = 0;
                        puVar17[2] = ppppbStack_108;
                      }
                      else {
                        (**(code **)(pcVar40 + 0x38124))(puVar29);
                        (**(code **)(pcVar40 + 0x38910))
                                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);
                      }
                    }
                    (**(code **)(pcVar40 + 0x38124))(ppppbVar12);
                    *(undefined4 *)(iVar18 + 0x4030) = 0;
                    pppppbVar35 = (byte *****)ppppbVar12;
                    goto LAB_000784dc;
                  }
                }
LAB_00078830:
                iVar27 = (*pcVar38)(iVar22 + -0x4144);
                pppppbVar32 = pppppbVar33;
                goto LAB_000787a4;
              }
              if (bVar21 != 1) {
LAB_0007878c:
                iVar27 = (**(code **)(pcVar40 + 0x38158))
                                   (*(int *)(pcVar40 + 0x38144) + -0x3f54,bVar21);
                goto LAB_000787a4;
              }
              (**(code **)(**(int **)(iVar18 + 8) + 4))(*(int **)(iVar18 + 8));
              *(undefined4 *)(iVar18 + 8) = 0;
              FUN_00077400(iVar18);
              *(undefined4 *)(iVar18 + 0x4030) = 0;
              goto LAB_000784dc;
            }
LAB_00078844:
            if ((bVar21 == 0x62) &&
               (pppppbVar32 = *(byte ******)(pcVar40 + 0x3885c), 3 < (int)pppppbVar35 + -9)) {
              pppppbVar32 = pppppbVar32 + 0x1abc;
              iVar22 = FUN_00076af0(iVar18 + 0x29,(byte *)((int)pppppbVar35 + -9),&ppppbStack_e8,0);
              ppppbVar12 = ppppbStack_e8;
              if ((iVar22 != 0) && ((byte *****)ppppbStack_e8 != (byte *****)0x0)) {
                ppppbStack_108 = ppppbStack_e8;
                iVar22 = (**(code **)(pcVar40 + 0x38c4c))
                                   (ppppbStack_e8,*(int *)(pcVar40 + 0x380fc) + 0x4300);
                if ((iVar22 == 0) &&
                   (iVar22 = (**(code **)(pcVar40 + 0x3865c))
                                       (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14)), iVar22 == 0
                   )) {
                  uVar41 = *(undefined4 *)(iVar18 + 0x25);
                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);
                  uStack_e0 = uVar41;
                  puVar29 = (undefined4 *)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0)
                  ;
                  if (puVar29 == (undefined4 *)0x0) {
                    pcVar38 = *(code **)(pcVar40 + 0x38158);
                    iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fe8;
LAB_000794d0:
                    uVar41 = (*pcVar38)(iVar27,uVar41);
                    FUN_00077910(iVar18,uVar41);
                    (**(code **)(pcVar40 + 0x38124))(uVar41);
                    *(undefined4 *)(iVar18 + 0x4030) = 0;
                  }
                  else {
                    pppbStack_c0 = (byte ***)*puVar29;
                    FUN_000768e4(iVar18 + 8,100,&pppbStack_c0,4,0,0xc);
                    *(undefined4 *)(iVar18 + 0x4030) = 0;
                  }
                  goto LAB_000784dc;
                }
                iVar22 = *(int *)(pcVar40 + 0x380fc);
                iVar11 = (**(code **)(pcVar40 + 0x38c4c))(ppppbVar12,iVar22 + 0x429c);
                if (iVar11 != 0) {
                  (**(code **)(pcVar40 + 0x38124))(ppppbVar12);
                  ppppbStack_108 = ppppbVar12;
                  goto LAB_00078df8;
                }
                uVar41 = *(undefined4 *)(iVar18 + 0x25);
                (**(code **)(pcVar40 + 0x38124))(ppppbVar12);
                uStack_e0 = uVar41;
                ppppbStack_108 =
                     (byte ****)find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);
                if ((byte *****)ppppbStack_108 == (byte *****)0x0) {
                  pcVar38 = *(code **)(pcVar40 + 0x38158);
                  iVar27 = *(int *)(pcVar40 + 0x38144) + -0x3fb0;
                  goto LAB_000794d0;
                }
                if ((int)pbVar31 < 0x11) {
                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);
                  goto LAB_000787a4;
                }
                cVar5 = *(char *)(iVar18 + 0x34);
                pbVar28 = (byte *)((int)pppppbVar35 + -0x16);
                cVar6 = *(char *)(iVar18 + 0x35);
                if ((int)pbVar28 < 4) {
                  ppppbVar12 = (byte ****)x11_identify_auth_proto(0);
                  (**(code **)(pcVar40 + 0x38124))(0);
LAB_0007949c:
                  pppppbVar35 = (byte *****)0xffffffff;
                }
                else {
                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,&ppppbStack_e8,0);
                  pppppbVar35 = (byte *****)ppppbStack_e8;
                  if (iVar11 == 0) {
                    pppppbVar35 = (byte *****)0x0;
                  }
                  ppppbVar12 = (byte ****)x11_identify_auth_proto(pppppbVar35);
                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);
                  iVar11 = FUN_00076af0(iVar18 + 0x36,pbVar28,0,&ppppbStack_e8);
                  pppppbVar35 = (byte *****)ppppbStack_e8;
                  if (iVar11 == 0) goto LAB_0007949c;
                }
                pbVar28 = (byte *)((int)pppppbVar35 + 0x11);
                iVar11 = (int)pbVar31 - (int)pbVar28;
                pppppbVar35 = (byte *****)0x0;
                if (iVar11 < 4) {
LAB_00078ff4:
                  pppppbVar33 = (byte *****)0xffffffff;
                }
                else {
                  iVar13 = FUN_00076af0(pbVar28 + iVar27,iVar11,&ppppbStack_e8,0);
                  pppppbVar35 = (byte *****)ppppbStack_e8;
                  if (iVar13 == 0) {
                    pppppbVar35 = (byte *****)0x0;
                  }
                  iVar11 = FUN_00076af0(pbVar28 + iVar27,iVar11,0,&ppppbStack_e8);
                  pppppbVar33 = (byte *****)ppppbStack_e8;
                  if (iVar11 == 0) goto LAB_00078ff4;
                }
                if ((int)pbVar31 <= (int)(pbVar28 + (int)pppppbVar33 + 3)) {
                  iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x3f7c);
                  (**(code **)(pcVar40 + 0x38124))(pppppbVar35);
                  goto LAB_000787a4;
                }
                pbVar31 = pbVar28 + (int)pppppbVar33 + iVar27;
                if (-1 < (int)ppppbVar12) {
                  bVar21 = *pbVar31;
                  bVar10 = cVar6 != '\0';
                  bVar1 = pbVar31[1];
                  bVar2 = pbVar31[3];
                  bVar3 = pbVar31[2];
                  ((byte *****)ppppbStack_108)[6] = ppppbVar12;
                  ppppbVar14 = (byte ****)x11_dehexify(pppppbVar35,(byte *****)ppppbStack_108 + 8);
                  pcVar38 = *(code **)(pcVar40 + 0x38124);
                  ((byte *****)ppppbStack_108)[7] = ppppbVar14;
                  (*pcVar38)(pppppbVar35);
                  ppppbVar12 = (byte ****)
                               (**(code **)(pcVar40 + 0x38920))
                                         (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),ppppbVar12,
                                          iVar18,ppppbStack_108);
                  ((byte *****)ppppbStack_108)[5] = ppppbVar12;
                  ((byte *****)ppppbStack_108)[9] = (byte ****)(uint)bVar10;
                  pppppbVar32 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[3]);
                  pppppbVar35 = (byte *****)(**(code **)(pcVar40 + 0x38b58))(ppppbVar12[4]);
                  puVar15 = (undefined1 *)
                            (**(code **)(pcVar40 + 0x3815c))
                                      ((byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,1);
                  puVar15[4] = 0;
                  puVar15[5] = 0;
                  uVar23 = *(uint *)(iVar22 + 0x429c);
                  uVar7 = *(undefined1 *)(iVar22 + 0x42a0);
                  uVar8 = *(undefined1 *)(iVar22 + 0x42a1);
                  uVar9 = *(undefined1 *)(iVar22 + 0x42a2);
                  puVar15[3] = (char)uVar41;
                  *puVar15 = (char)((uint)uVar41 >> 0x18);
                  puVar15[1] = (char)((uint)uVar41 >> 0x10);
                  puVar15[2] = (char)((uint)uVar41 >> 8);
                  puVar15[7] = 7;
                  puVar15[6] = 0;
                  puVar24 = puVar15 + 8;
                  uVar30 = (uint)puVar24 & 3;
                  *(uint *)(puVar24 + -uVar30) =
                       *(uint *)(puVar24 + -uVar30) & -1 << (4 - uVar30) * 8 | uVar23 >> uVar30 * 8;
                  puVar24 = puVar15 + 0xb;
                  uVar30 = (uint)puVar24 & 3;
                  *(uint *)(puVar24 + -uVar30) =
                       *(uint *)(puVar24 + -uVar30) & 0xffffffffU >> (uVar30 + 1) * 8 |
                       uVar23 << (3 - uVar30) * 8;
                  puVar15[0xc] = uVar7;
                  puVar15[0xd] = uVar8;
                  puVar15[0xe] = uVar9;
                  puVar15[0x10] = bVar10;
                  puVar15[0x11] = (char)((uint)pppppbVar32 >> 0x18);
                  puVar15[0x12] = (char)((uint)pppppbVar32 >> 0x10);
                  puVar15[0x13] = (char)((uint)pppppbVar32 >> 8);
                  puVar15[0x14] = (char)pppppbVar32;
                  pcVar38 = *(code **)(pcVar40 + 0x38c14);
                  puVar15[0xf] = cVar5 != '\0';
                  (*pcVar38)(puVar15 + 0x15,((byte *****)ppppbStack_108)[5][3],pppppbVar32);
                  puVar24 = puVar15 + (int)pppppbVar32;
                  puVar24[0x15] = (char)((uint)pppppbVar35 >> 0x18);
                  puVar24[0x16] = (char)((uint)pppppbVar35 >> 0x10);
                  puVar24[0x17] = (char)((uint)pppppbVar35 >> 8);
                  puVar24[0x18] = (char)pppppbVar35;
                  (**(code **)(pcVar40 + 0x38c14))
                            (puVar15 + (int)((int)pppppbVar32 + 0x19),
                             ((byte *****)ppppbStack_108)[5][4],pppppbVar35);
                  puVar24 = puVar15 + (int)((int)pppppbVar32 + (int)pppppbVar35);
                  puVar24[0x1c] = bVar2;
                  puVar24[0x19] = bVar21;
                  puVar24[0x1a] = bVar1;
                  puVar24[0x1b] = bVar3;
                  (**(code **)(pcVar40 + 0x388fc))
                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),
                             *(undefined4 *)(iVar18 + 4),0x62,puVar15,
                             (byte *)((int)pppppbVar32 + 0x1d) + (int)pppppbVar35,0);
                  (**(code **)(pcVar40 + 0x38124))(puVar15);
                  *(undefined4 *)(iVar18 + 0x4030) = 0;
                  goto LAB_000784dc;
                }
                goto LAB_00078f28;
              }
            }
LAB_00078df8:
            (**(code **)(pcVar40 + 0x388fc))
                      (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),
                       bVar21,iVar27,pbVar31,0);
            if ((bVar21 == 0x61) && (3 < (int)pbVar31)) {
              uStack_e0 = *(undefined4 *)(iVar18 + 0x25);
              iVar27 = find234(*(undefined4 *)(iVar18 + 0x403c),&ppppbStack_e8,0);
              if (iVar27 != 0) {
                if (*(int *)(iVar27 + 0x10) == 2) {
                  (**(code **)(pcVar40 + 0x38900))
                            (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),
                             *(undefined4 *)(iVar27 + 4));
                  FUN_00076738(iVar18,iVar27);
                  *(undefined4 *)(iVar18 + 0x4030) = 0;
                }
                else {
                  *(undefined4 *)(iVar27 + 0x10) = 1;
                  *(undefined4 *)(iVar18 + 0x4030) = 0;
                }
                goto LAB_000784dc;
              }
            }
          }
          else {
            if (bVar21 == 0x5c) {
              if (3 < (int)pbVar31) {
                pppppbVar32 = *(byte ******)(iVar18 + 0x25);
                pppppbVar35 = &ppppbStack_e8;
                ppppbStack_e8 = (byte ****)pppppbVar32;
                iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),pppppbVar35,0);
                if (iVar22 == 0) {
                  ppppbStack_e4 = (byte ****)pppppbVar32;
                  iVar27 = find234(*(undefined4 *)(iVar18 + 0x4044),pppppbVar35,0);
                  if (iVar27 == 0) {
                    iVar27 = (**(code **)(pcVar40 + 0x38158))
                                       (*(int *)(pcVar40 + 0x38144) + -0x4020,pppppbVar32);
                    goto LAB_000787a4;
                  }
                  share_xchannel_failure(iVar18,iVar27);
                  *(undefined4 *)(iVar18 + 0x4030) = 0;
                }
                else {
                  iVar11 = *(int *)(iVar18 + 0xc);
                  uVar41 = 0x5c;
LAB_000786e4:
                  (**(code **)(pcVar40 + 0x388fc))
                            (*(undefined4 *)(iVar11 + 0x14),*(undefined4 *)(iVar18 + 4),uVar41,
                             iVar27,pbVar31,0);
                  del234(*(undefined4 *)(iVar18 + 0x4034),iVar22);
                  (**(code **)(pcVar40 + 0x38124))(iVar22);
                  *(undefined4 *)(iVar18 + 0x4030) = 0;
                }
                goto LAB_000784dc;
              }
              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x4048);
              goto LAB_000787a4;
            }
            if (0x5b < bVar21) {
              if (100 < bVar21) goto LAB_0007878c;
              goto LAB_00078844;
            }
            if ((int)pbVar31 < 0x10) {
              iVar27 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x40f4);
              goto LAB_000787a4;
            }
            uVar30 = iVar18 + 0x25U & 3;
            uVar41 = *(undefined4 *)(iVar18 + 0x29);
            uVar23 = iVar18 + 0x28U & 3;
            pppppbVar32 = (byte *****)
                          ((*(int *)((iVar18 + 0x25U) - uVar30) << uVar30 * 8 |
                           (uint)pppppbVar32 & 0xffffffffU >> (4 - uVar30) * 8) &
                           -1 << (uVar23 + 1) * 8 |
                          *(uint *)((iVar18 + 0x28U) - uVar23) >> (3 - uVar23) * 8);
            ppppbStack_e8 = (byte ****)pppppbVar32;
            iVar22 = find234(*(undefined4 *)(iVar18 + 0x4034),&ppppbStack_e8);
            if (iVar22 == 0) {
              ppppbStack_e4 = (byte ****)pppppbVar32;
              pppppbVar35 = (byte *****)find234(*(undefined4 *)(iVar18 + 0x4044),&ppppbStack_e8,0);
              if (pppppbVar35 == (byte *****)0x0) goto LAB_0007927c;
              ppppbVar12 = *pppppbVar35;
            }
            else {
              pppppbVar35 = (byte *****)0x0;
              ppppbVar12 = (byte ****)
                           (**(code **)(pcVar40 + 0x38914))
                                     (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);
            }
            *(char *)(iVar18 + 0x2c) = (char)ppppbVar12;
            *(char *)(iVar18 + 0x29) = (char)((uint)ppppbVar12 >> 0x18);
            *(char *)(iVar18 + 0x2a) = (char)((uint)ppppbVar12 >> 0x10);
            *(char *)(iVar18 + 0x2b) = (char)((uint)ppppbVar12 >> 8);
            uVar30 = iVar18 + 0x31U & 3;
            uVar23 = iVar18 + 0x34U & 3;
            uVar41 = FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,uVar41,ppppbVar12,pppppbVar32,0,
                                  (*(int *)((iVar18 + 0x31U) - uVar30) << uVar30 * 8 |
                                  in_t3 & 0xffffffffU >> (4 - uVar30) * 8) & -1 << (uVar23 + 1) * 8
                                  | *(uint *)((iVar18 + 0x34U) - uVar23) >> (3 - uVar23) * 8);
            if (iVar22 != 0) {
              iVar11 = *(int *)(iVar18 + 0xc);
              uVar41 = 0x5b;
              goto LAB_000786e4;
            }
            if (pppppbVar35 != (byte *****)0x0) {
              if (*(uint *)(iVar18 + 0x2d) < 0x100) {
                iVar27 = (**(code **)(pcVar40 + 0x38158))
                                   (*(int *)(pcVar40 + 0x38144) + -0x408c,*(uint *)(iVar18 + 0x2d));
                goto LAB_000787a4;
              }
              MASKED(iVar18,pppppbVar35,uVar41);
              FUN_00076be8(*(undefined4 *)(iVar18 + 0x4040),iVar18 + 0x4044,pppppbVar35);
              *(undefined4 *)(iVar18 + 0x4030) = 0;
              goto LAB_000784dc;
            }
          }
LAB_000784d4:
          *(undefined4 *)(iVar18 + 0x4030) = 0;
          goto LAB_000784dc;
        }
        iVar22 = *(int *)(pcVar40 + 0x38144);
        if (3 < (int)pbVar31) {
          iVar22 = FUN_00076af0(iVar27,pbVar31,0,&ppppbStack_e8);
          if (((iVar22 == 0) || ((int)ppppbStack_e8 < 0)) ||
             (pppppbVar32 = (byte *****)((int)ppppbStack_e8 + iVar27),
             (int)(pppppbVar35 + -4) <= (int)ppppbStack_e8)) {
            iVar22 = *(int *)(pcVar40 + 0x38144);
            goto LAB_00078e80;
          }
          pbVar16 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x26);
          ppppbStack_108 = (byte ****)((int)ppppbStack_e8 + iVar18 + 0x27);
          pbVar28 = (byte *)((int)ppppbStack_e8 + iVar18 + 0x28);
          pppppbVar35 = (byte *****)
                        ((uint)*(byte *)pppppbVar32 << 0x18 | (uint)*pbVar16 << 0x10 |
                         (uint)*pbVar28 | (uint)*(byte *)ppppbStack_108 << 8);
          uVar41 = (**(code **)(pcVar40 + 0x38914))
                             (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),iVar18);
          FUN_00076c74(iVar18 + 0x4038,iVar18 + 0x403c,pppppbVar35,uVar41,0,3,
                       (uint)*(byte *)(pppppbVar32 + 2) << 0x18 |
                       (uint)*(byte *)((int)pppppbVar32 + 9) << 0x10 |
                       (uint)*(byte *)((int)pppppbVar32 + 0xb) |
                       (uint)*(byte *)((int)pppppbVar32 + 10) << 8);
          *(byte *)pppppbVar32 = (byte)((uint)uVar41 >> 0x18);
          *pbVar16 = (byte)((uint)uVar41 >> 0x10);
          *(byte *)ppppbStack_108 = (byte)((uint)uVar41 >> 8);
          *pbVar28 = (byte)uVar41;
          (**(code **)(pcVar40 + 0x388fc))
                    (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),0x5a
                     ,iVar27,pbVar31,0);
          *(undefined4 *)(iVar18 + 0x4030) = 0;
          goto LAB_000784dc;
        }
LAB_00078e80:
        iVar27 = (**(code **)(pcVar40 + 0x38158))(iVar22 + -0x4114);
LAB_000787a4:
        while (iVar27 == 0) {
          (**(code **)(pcVar40 + 0x38a34))
                    (*(int *)(pcVar40 + 0x38144) + -0x3f38,*(int *)(pcVar40 + 0x38144) + -0x42c4,
                     0x6e6,*(int *)(pcVar40 + 0x38144) + -0x3e30);
LAB_0007927c:
          iVar27 = (**(code **)(pcVar40 + 0x38158))
                             (*(int *)(pcVar40 + 0x38144) + -0x40c8,pppppbVar32);
        }
        FUN_00077910(iVar18,iVar27);
        (**(code **)(pcVar40 + 0x38124))(iVar27);
        *(undefined4 *)(iVar18 + 0x4030) = 0;
        goto LAB_000784dc;
      }
      uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x415c,iVar27);
LAB_000781e4:
      FUN_00077910(iVar18,uVar41);
      (**(code **)(pcVar40 + 0x38124))(uVar41);
      param_1 = pbVar25;
LAB_00078210:
      *(undefined4 *)(iVar18 + 0x10) = 0;
    } while( true );
  }
  uVar30 = *(uint *)(iVar18 + 0x4030);
  bVar21 = *pbVar25;
  pbVar34 = pbVar31 + -1;
  pbVar28 = pbVar25 + 1;
  if (bVar21 == 10) {
LAB_0007855c:
    pbVar25 = pbVar28;
    if (0x2d < uVar30) {
      pppppbVar32 = (byte *****)(iVar18 + 0x20);
      iVar27 = (**(code **)(pcVar40 + 0x38bf8))
                         (pppppbVar32,*(int *)(pcVar40 + 0x38144) + -0x3e10,0x2e);
      if (iVar27 == 0) {
        if ((0 < (int)uVar30) && (uVar23 = uVar30 - 1, *(char *)(iVar18 + uVar23 + 0x20) == '\r')) {
          *(uint *)(iVar18 + 0x4030) = uVar23;
          uVar30 = uVar23;
        }
        (**(code **)(pcVar40 + 0x388f4))
                  (*(undefined4 *)(*(int *)(iVar18 + 0xc) + 0x14),*(undefined4 *)(iVar18 + 4),
                   *(int *)(pcVar40 + 0x38144) + -0x417c,uVar30,pppppbVar32);
        *(undefined4 *)(iVar18 + 0x18) = 1;
        *(undefined4 *)(iVar18 + 0x4030) = 0;
        goto LAB_000784dc;
      }
    }
    uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41ac);
    goto LAB_000781e4;
  }
  pbVar16 = pbVar31;
  if (uVar30 < 0x4010) {
    uVar30 = uVar30 + 1;
    pbVar26 = pbVar25 + (int)pbVar34;
    pbVar34 = pbVar31;
    param_1 = pbVar28;
    do {
      *(uint *)(iVar18 + 0x4030) = uVar30;
      *(byte *)(iVar18 + uVar30 + 0x1f) = bVar21;
      if (pbVar25 + (int)pbVar31 == param_1) goto LAB_000781c4;
      pbVar34 = pbVar26 + -(int)param_1;
      pbVar28 = param_1 + 1;
      bVar21 = *param_1;
      if (bVar21 == 10) goto LAB_0007855c;
      uVar30 = uVar30 + 1;
      pbVar16 = pbVar34;
      param_1 = pbVar28;
    } while (uVar30 != 0x4011);
  }
  uVar41 = (**(code **)(pcVar40 + 0x38158))(*(int *)(pcVar40 + 0x38144) + -0x41cc);
  pbVar34 = pbVar16;
  pbVar25 = pbVar28;
  goto LAB_000781e4;
}

